.ifrm{width:100%;display:flex;flex-direction:column;gap:14px}.ifrm-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ifrm-wide{grid-column:span 1}.ifrm-group{display:flex;flex-direction:column;gap:5px;min-width:0}.ifrm-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280)}.ifrm-req{color:#ef4444;margin-left:2px}.ifrm-hint{font-size:11px;color:var(--text-muted, #9ca3af);line-height:1.4}.ifrm-input,.ifrm-select{height:38px;font-size:13px;padding:0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.ifrm-input::placeholder{color:var(--text-muted, #c4c8d0);font-size:12px}.ifrm-input:focus,.ifrm-select:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.ifrm-select{appearance:auto;padding-right:8px;cursor:pointer}.ifrm-group--active{justify-content:flex-start;padding-top:22px}.ifrm-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.ifrm-toggle input[type=checkbox]{display:none}.ifrm-toggle-track{position:relative;width:40px;height:22px;border-radius:11px;background:var(--border, #d1d5db);transition:background .2s;flex-shrink:0}.ifrm-toggle input:checked~.ifrm-toggle-track{background:var(--primary, #6366f1)}.ifrm-toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.ifrm-toggle input:checked~.ifrm-toggle-track .ifrm-toggle-thumb{transform:translate(18px)}.ifrm-toggle-label{font-size:13px;font-weight:600;color:var(--text, #374151)}.ifrm-actions{display:flex;gap:10px;align-items:center;padding-top:4px;border-top:1px solid var(--border, #f3f4f6);margin-top:2px}.ifrm-btn-primary{height:38px;padding:0 20px;font-size:13px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.ifrm-btn-primary:hover{opacity:.88}.ifrm-btn-primary:disabled{opacity:.5;cursor:default}.ifrm-btn-secondary{height:38px;padding:0 16px;font-size:13px;font-weight:600;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text-muted, #6b7280);cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.ifrm-btn-secondary:hover{background:var(--bg, #f5f6fa);color:var(--text, #374151);border-color:var(--text-muted, #9ca3af)}@media(max-width:900px){.ifrm-row{grid-template-columns:1fr 1fr}.ifrm-group--active{padding-top:0}}@media(max-width:580px){.ifrm-row{grid-template-columns:1fr}.ifrm-actions{flex-direction:column;align-items:stretch}.ifrm-btn-primary,.ifrm-btn-secondary{width:100%;justify-content:center}}.items-page{display:flex;flex-direction:column;min-height:calc(100vh - 60px);background:var(--bg, #f5f6fa)}.items-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.items-kpi-strip::-webkit-scrollbar{height:3px}.items-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.ikpi-val{font-size:18px;font-weight:800;color:var(--text, #111827);line-height:1.2}.ikpi-insumo{color:#2563eb}.ikpi-ficha{color:#7c3aed}.ikpi-unitario{color:#0891b2}.items-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.items-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.items-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.items-card-head{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);gap:12px;flex-wrap:wrap}.items-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.items-card-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.items-card-body{padding:20px}.items-list-head{flex-wrap:wrap;gap:10px}.items-list-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.items-search{font-size:13px;padding:6px 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;width:240px;background:var(--surface, #fff);color:var(--text, #111827)}.items-search:focus{outline:none;border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.items-meta{font-size:12px;color:var(--text-muted, #9ca3af);white-space:nowrap}.items-table-wrap{overflow-x:auto}.items-table-wrap::-webkit-scrollbar{height:5px}.items-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.items-table{width:100%;border-collapse:collapse;font-size:13px;min-width:800px}.items-table thead th{padding:10px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap;position:sticky;top:0;z-index:2}.items-table thead th.th-actions{text-align:right;min-width:110px}.items-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.items-table tbody tr:hover{background:var(--bg, #fafafa)}.items-table tbody tr.tr-inactive{opacity:.55}.items-table td{padding:9px 12px;vertical-align:middle;color:var(--text, #111827)}.items-table td.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.items-table td.td-name{font-weight:600}.items-table td.td-muted{color:var(--text-muted, #c4c8d0)}.items-table td.td-actions{text-align:right}.items-empty{text-align:center!important;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:14px}.type-badge{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.type-insumo{background:#eff6ff;color:#1d4ed8}.type-ficha{background:#f5f3ff;color:#6d28d9}.type-unitario{background:#ecfeff;color:#0e7490}.cat-chip{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280);border:1px solid var(--border, #e5e7eb)}.btn-row-del{font-size:11px;padding:4px 8px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:var(--text-muted, #9ca3af);transition:all .1s}.btn{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.btn-outline{border-color:var(--primary, #6366f1);color:var(--primary, #4f46e5);background:var(--primary-soft, #eef2ff)}.btn-outline:hover:not(:disabled){background:var(--primary, #6366f1);color:#fff}.btn-danger-soft{font-size:12px;font-weight:600;padding:6px 12px;border-radius:7px;border:1px solid #fca5a5;background:#fef2f2;color:#dc2626;cursor:pointer;white-space:nowrap}.btn-danger-soft:hover{background:#dc2626;color:#fff}.btn-small{padding:4px 10px;font-size:12px;border-radius:5px}.modal-backdrop{position:fixed;inset:0;background:#0f172a4d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;z-index:9999;overflow-y:auto}.modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;padding:20px;width:min(520px,100%);height:fit-content;max-height:90vh;overflow-y:auto;animation:modalIn .16s ease-out}.modal-wide{width:min(620px,100%)}.modal-compact{width:min(360px,100%);text-align:center;padding:28px 24px 22px;height:fit-content!important;max-height:fit-content!important;align-self:center;overflow:visible}.modal-compact-icon{width:44px;height:44px;border-radius:50%;background:#fef9c3;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:20px;line-height:1}.modal-compact h4{margin:0 0 8px;font-size:15px;font-weight:700;color:var(--text, #111827)}.modal h4{margin:0;font-size:15px;font-weight:700;color:var(--text, #111827)}.modal p{margin:5px 0 0;font-size:13px;color:var(--text-muted, #6b7280);line-height:1.5}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.modal-text-input{width:100%;font-size:13px;padding:8px 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);box-sizing:border-box}.modal-text-input:focus{outline:none;border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.cat-create-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}.cat-list{border:1px solid var(--border, #e5e7eb);border-radius:8px;overflow:hidden;max-height:300px;overflow-y:auto}.cat-list::-webkit-scrollbar{width:4px}.cat-list::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.cat-empty{padding:20px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.cat-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--border, #f3f4f6);gap:10px;background:var(--surface, #fff)}.cat-row:last-child{border-bottom:none}.cat-row:hover{background:var(--bg, #fafafa)}.cat-left{flex:1;min-width:0}.cat-name{font-size:13px;font-weight:500;color:var(--text, #111827)}.cat-actions{display:flex;gap:6px}.cat-edit-input{height:32px;font-size:13px}.items-toast{position:fixed;right:16px;bottom:16px;z-index:99999;padding:11px 16px;border-radius:9px;font-size:13px;font-weight:600;max-width:400px;box-shadow:0 8px 30px #02061724;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);animation:toastIn .2s ease-out}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.items-toast-success{border-color:#86efac;color:#15803d;background:#f0fdf4}.items-toast-error{border-color:#fca5a5;color:#dc2626;background:#fef2f2}.items-toast-info{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}@media(max-width:760px){.items-list-toolbar,.items-search{width:100%}.items-strip-actions{flex-wrap:wrap}}.pricing-page{display:flex;flex-direction:column;min-height:calc(100vh - 60px);background:var(--bg, #f5f6fa)}.pricing-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.pricing-kpi-strip::-webkit-scrollbar{height:3px}.pricing-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.spkpi{display:flex;flex-direction:column;padding:10px 20px;flex-shrink:0}.spkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.spkpi-val{font-size:16px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.spkpi-profile{color:#7c3aed;font-size:13px}.spkpi-ideal,.spkpi-pos{color:#16a34a}.spkpi-neg{color:#dc2626}.spkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.pricing-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.pricing-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.pricing-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.pricing-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.pricing-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.pricing-card-head{padding:14px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.pricing-card-head--row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pricing-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.pricing-card-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.pricing-card-body{padding:20px}.pricing-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.pricing-toggle input[type=checkbox]{display:none}.pricing-toggle-track{position:relative;width:40px;height:22px;border-radius:11px;background:var(--border, #d1d5db);transition:background .2s;flex-shrink:0}.pricing-toggle input:checked~.pricing-toggle-track{background:var(--primary, #6366f1)}.pricing-toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.pricing-toggle input:checked~.pricing-toggle-track .pricing-toggle-thumb{transform:translate(18px)}.pricing-toggle-label{font-size:13px;font-weight:600;color:var(--text, #374151)}.pricing-fields-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.pricing-field-group{display:flex;flex-direction:column;gap:5px}.pricing-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280)}.pricing-req{color:#ef4444;margin-left:2px}.pricing-hint{font-size:11px;color:var(--text-muted, #9ca3af);line-height:1.4}.pricing-input{height:38px;font-size:13px;padding:0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;width:100%;box-sizing:border-box}.pricing-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.batch-panel{background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:14px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.batch-error{padding:10px 12px;border-radius:7px;border:1px solid #fca5a5;background:#fef2f2;color:#dc2626;font-size:13px}.batch-meta-row{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--text-muted, #6b7280);flex-wrap:wrap}.batch-meta-row strong{color:var(--text, #111827)}.batch-list{border:1px solid var(--border, #e5e7eb);border-radius:7px;max-height:240px;overflow-y:auto;background:var(--surface, #fff)}.batch-list::-webkit-scrollbar{width:4px}.batch-list::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.batch-empty{padding:20px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.batch-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border, #f3f4f6);cursor:pointer;transition:background .1s}.batch-row:last-child{border-bottom:none}.batch-row:hover,.batch-row--checked{background:var(--primary-soft, #eef2ff)}.batch-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary, #6366f1);flex-shrink:0}.batch-row-name{font-size:13px;font-weight:600;color:var(--text, #111827);flex:1}.batch-row-type{font-size:11px;padding:2px 7px;border-radius:4px;background:#f3f4f6;color:var(--text-muted, #6b7280)}.batch-row-price{font-size:12px;font-family:monospace;color:var(--text-muted, #6b7280);margin-left:auto;flex-shrink:0}.btn-simulate{width:100%;height:42px;font-size:14px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:8px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;margin-top:4px}.btn-simulate:hover:not(:disabled){opacity:.88}.btn-simulate:disabled{opacity:.55;cursor:default}.result-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:20px}.result-kpi{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:8px}.result-kpi--accent{border-color:#86efac;background:#f0fdf4}.result-kpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af)}.result-kpi-val{font-size:18px;font-weight:800;color:var(--text, #111827);font-family:monospace}.result-kpi--accent .result-kpi-val{color:#15803d}.result-pos{color:#15803d!important}.result-neg{color:#dc2626!important}.result-components{margin-top:4px}.result-components-title{font-size:12px;font-weight:700;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.result-comp-table-wrap{border:1px solid var(--border, #e5e7eb);border-radius:8px;overflow:hidden;margin-bottom:10px}.result-comp-table{width:100%;border-collapse:collapse;font-size:13px}.result-comp-table thead th{padding:8px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb)}.result-comp-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6)}.result-comp-table td{padding:8px 12px}.result-comp-total{font-size:12px;color:var(--text-muted, #6b7280)}.batch-result-wrap{overflow-x:auto}.batch-result-table{width:100%;border-collapse:collapse;font-size:13px;min-width:480px}.batch-result-table thead th{padding:9px 14px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb)}.batch-result-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.batch-result-table tbody tr:hover{background:var(--bg, #fafafa)}.batch-result-table td{padding:9px 14px}.td-name{font-weight:600}.td-pos{color:#15803d;font-weight:700}.td-neg{color:#dc2626;font-weight:700}.pricing-empty{text-align:center!important;padding:32px!important;color:var(--text-muted, #9ca3af);font-size:13px}.sim-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;background:var(--bg, #e5e7eb);font-size:11px;font-weight:700;color:var(--text-muted, #6b7280);padding:0 5px}.pricing-saved-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;width:min(880px,100%);max-height:86vh;height:fit-content;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.pricing-saved-body{display:grid;grid-template-columns:260px 1fr;flex:1;overflow:hidden;min-height:0}.pricing-saved-list{border-right:1px solid var(--border, #e5e7eb);display:flex;flex-direction:column;overflow:hidden}.pricing-saved-list-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);flex-shrink:0}.pricing-saved-list-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af)}.pricing-saved-scroll{flex:1;overflow-y:auto}.pricing-saved-scroll::-webkit-scrollbar{width:4px}.pricing-saved-scroll::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.pricing-saved-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af);display:flex;flex-direction:column;align-items:center;gap:8px}.pricing-saved-empty--center{height:100%;justify-content:center}.pricing-saved-row{display:flex;flex-direction:column;gap:3px;padding:11px 14px;border-bottom:1px solid var(--border, #f3f4f6);cursor:pointer;text-align:left;background:none;border-left:none;border-right:none;border-top:none;width:100%;transition:background .1s}.pricing-saved-row:hover{background:var(--bg, #fafafa)}.pricing-saved-row--active{background:var(--primary-soft, #eef2ff)!important;border-left:3px solid var(--primary, #6366f1);padding-left:11px}.pricing-saved-row-name{font-size:13px;font-weight:600;color:var(--text, #111827)}.pricing-saved-row-meta{font-size:11px;color:var(--text-muted, #9ca3af)}.pricing-saved-detail{display:flex;flex-direction:column;gap:0;overflow:hidden}.sim-kpi-card{flex:1;padding:14px 16px;text-align:center;border-right:1px solid var(--border, #e5e7eb)}.sim-kpi-card:last-child{border-right:none}.sim-kpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af);margin-bottom:4px}.sim-kpi-val{font-size:18px;font-weight:800;color:var(--text, #111827)}.sim-break-wrap{flex:1;overflow-y:auto}.sim-break-wrap::-webkit-scrollbar{width:4px}.sim-break-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.sim-break-table{width:100%;border-collapse:collapse;font-size:13px}.sim-break-table thead th{padding:9px 14px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);position:sticky;top:0}.sim-break-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6)}.sim-break-table tbody tr:hover{background:var(--bg, #fafafa)}.sim-break-table td{padding:9px 14px}.sim-break-total{background:var(--primary-soft, #eef2ff)!important}.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}@media(max-width:760px){.pricing-fields-row,.pricing-saved-body{grid-template-columns:1fr}.pricing-saved-list{border-right:none;border-bottom:1px solid var(--border, #e5e7eb);max-height:200px}}.recipe-page{display:flex;flex-direction:column;min-height:calc(100vh - 60px);background:var(--bg, #f5f6fa)}.recipe-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.recipe-kpi-strip::-webkit-scrollbar{height:3px}.recipe-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.rkpi{display:flex;flex-direction:column;padding:10px 20px;flex-shrink:0}.rkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.rkpi-val{font-size:17px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.rkpi-product{color:#7c3aed;font-size:14px}.rkpi-warn{color:#d97706}.rkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.recipe-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.recipe-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.recipe-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.recipe-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.recipe-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.recipe-card-head{padding:14px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.recipe-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.recipe-card-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.recipe-card-body{padding:20px}.recipe-config-row{display:grid;grid-template-columns:1fr 200px;gap:16px;margin-bottom:20px}.recipe-field-group{display:flex;flex-direction:column;gap:6px}.recipe-field-group label{font-size:12px;font-weight:700;color:var(--text, #111827);text-transform:uppercase;letter-spacing:.04em}.recipe-field-group small{font-size:11px;color:var(--text-muted, #9ca3af);line-height:1.4}.recipe-field-group select,.recipe-field-group input{height:40px;font-size:13px;padding:0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.recipe-field-group select:focus,.recipe-field-group input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.recipe-table-wrap{border:1px solid var(--border, #e5e7eb);border-radius:8px;overflow:auto;margin-bottom:20px}.recipe-table-wrap::-webkit-scrollbar{height:5px}.recipe-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.recipe-table{width:100%;border-collapse:collapse;font-size:13px;min-width:740px}.recipe-table thead th{padding:9px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.recipe-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.recipe-table tbody tr:hover:not(.tr-add){background:var(--bg, #fafafa)}.recipe-table td{padding:8px 12px;vertical-align:middle}.td-unit{font-size:12px;color:var(--text-muted, #6b7280)}.td-muted{color:var(--text-muted, #d1d5db)}.td-calc{font-size:10px;color:var(--text-muted, #9ca3af)}.td-line-cost{font-weight:600}.recipe-table select{width:100%;min-width:180px;height:36px;font-size:12px;padding:0 10px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.recipe-table select:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.qty-input{width:90px;height:36px;font-size:12px;padding:0 10px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.qty-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.btn-remove-line{font-size:11px;width:26px;height:26px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:var(--text-muted, #9ca3af);transition:all .1s;display:flex;align-items:center;justify-content:center}.btn-remove-line:hover{background:#fee2e2;color:#dc2626}.tr-add td{padding:6px 8px}.btn-add-line{width:100%;height:38px;font-size:12px;font-weight:600;border:1.5px dashed var(--border, #d1d5db);border-radius:6px;background:none;color:var(--text-muted, #6b7280);cursor:pointer;transition:all .15s}.btn-add-line:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff)}.recipe-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.recipe-totals{display:flex;gap:12px;flex-wrap:wrap}.total-card{display:flex;flex-direction:column;gap:3px;padding:12px 18px;background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:8px;min-width:160px}.total-card--warn{border-color:#fde68a;background:#fffbeb}.total-lbl{font-size:11px;color:var(--text-muted, #6b7280);font-weight:600}.total-val{font-size:20px;font-weight:800;color:var(--text, #111827);font-family:SFMono-Regular,Consolas,monospace}.total-card--warn .total-val{color:#d97706}.btn-save{height:42px;padding:0 24px;font-size:13px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:8px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.btn-save:disabled{opacity:.55;cursor:default}.recipe-saved-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;padding:20px;width:min(640px,100%);height:fit-content;max-height:80vh;display:flex;flex-direction:column;gap:14px;animation:modalIn .16s ease-out}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-loading,.modal-empty{padding:24px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.saved-table-wrap{flex:1;overflow-y:auto;border:1px solid var(--border, #e5e7eb);border-radius:8px}.saved-table-wrap::-webkit-scrollbar{width:4px}.saved-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.saved-table{width:100%;border-collapse:collapse;font-size:13px}.saved-table thead th{padding:9px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);position:sticky;top:0}.saved-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.saved-table tbody tr:hover{background:var(--bg, #fafafa)}.saved-table td{padding:9px 12px}.saved-table td.td-name{font-weight:600}.saved-table td.td-mono{font-family:monospace;font-size:12px}.saved-table td.td-actions{text-align:right;display:flex;gap:6px;justify-content:flex-end}@media(max-width:760px){.recipe-config-row{grid-template-columns:1fr}.recipe-footer{flex-direction:column;align-items:stretch}.recipe-totals{flex-direction:column}.btn-save{width:100%;justify-content:center}.rkpi{padding:8px 12px}.rkpi-val{font-size:14px;max-width:120px}}@media(max-width:640px){.recipe-table{min-width:0}.recipe-table thead{display:none}.recipe-table,.recipe-table tbody,.recipe-table tr,.recipe-table td{display:block;width:100%}.recipe-table tr{padding:10px;border-bottom:1px solid var(--border, #e5e7eb)}.recipe-table td{border:none;padding:6px 0}.recipe-table td:before{content:attr(data-label);display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted, #9ca3af);margin-bottom:4px;font-weight:700}.recipe-table select,.qty-input{width:100%}}.prof-page{display:flex;flex-direction:column;min-height:calc(100vh - 60px);background:var(--bg, #f5f6fa)}.prof-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.prof-kpi-strip::-webkit-scrollbar{height:3px}.prof-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.pkpi{display:flex;flex-direction:column;padding:10px 20px;flex-shrink:0}.pkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.pkpi-val{font-size:17px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.pkpi-default{color:#7c3aed;font-size:14px}.pkpi-editing{color:#2563eb;font-size:14px}.pkpi-warn{color:#d97706}.pkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.prof-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.prof-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.prof-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.prof-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.prof-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.prof-card-head{padding:14px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.prof-card-head--row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.prof-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.prof-card-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.prof-card-body{padding:20px}.prof-form-row{display:grid;grid-template-columns:1fr 220px;gap:14px;margin-bottom:16px}.prof-form-row--2{grid-template-columns:1fr 1fr}.prof-field-group{display:flex;flex-direction:column;gap:5px;min-width:0}.prof-field-wide{grid-column:1}.prof-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280)}.prof-req{color:#ef4444;margin-left:2px}.prof-hint{font-size:11px;color:var(--text-muted, #9ca3af);line-height:1.4}.prof-input{height:38px;font-size:13px;padding:0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.prof-input::placeholder{color:var(--text-muted, #c4c8d0);font-size:12px}.prof-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.prof-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:4px}.prof-toggle input[type=checkbox]{display:none}.prof-toggle-track{position:relative;width:40px;height:22px;border-radius:11px;background:var(--border, #d1d5db);transition:background .2s;flex-shrink:0}.prof-toggle input:checked~.prof-toggle-track{background:var(--primary, #6366f1)}.prof-toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.prof-toggle input:checked~.prof-toggle-track .prof-toggle-thumb{transform:translate(18px)}.prof-toggle-label{font-size:13px;font-weight:600;color:var(--text, #374151)}.prof-form-actions{display:flex;gap:10px;align-items:center;padding-top:14px;border-top:1px solid var(--border, #f3f4f6)}.prof-table-wrap{overflow-x:auto}.prof-table-wrap::-webkit-scrollbar{height:5px}.prof-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.prof-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}.prof-table thead th{padding:9px 14px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.prof-table thead th.th-actions{text-align:right}.prof-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.prof-table tbody tr:hover:not(.tr-editing){background:var(--bg, #fafafa)}.prof-table tbody tr.tr-editing{background:var(--primary-soft, #eef2ff)}.prof-table td{padding:9px 14px;vertical-align:middle;color:var(--text, #111827)}.prof-table td.td-name{font-weight:600}.prof-table td.td-mono{font-family:monospace;font-size:12px}.prof-table td.td-bold{font-weight:700}.prof-table td.td-muted{color:var(--text-muted, #c4c8d0)}.prof-table td.td-actions{text-align:right;display:flex;gap:6px;justify-content:flex-end}.prof-empty{text-align:center!important;padding:32px!important;color:var(--text-muted, #9ca3af);font-size:13px}.type-chip{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:700;text-transform:capitalize}.chip-despesa{background:#fef9c3;color:#92400e}.chip-taxa{background:#eff6ff;color:#1d4ed8}.chip-imposto{background:#fef2f2;color:#b91c1c}.chip-lucro{background:#f0fdf4;color:#15803d}.chip-outro{background:#f3f4f6;color:#6b7280}.status-dot{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600}.status-dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%}.status-active:before{background:#22c55e}.status-inactive:before{background:#d1d5db}.status-active{color:#15803d}.status-inactive{color:#9ca3af}.default-chip{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#f5f3ff;color:#7c3aed;border:1px solid #ddd6fe}.prof-sum-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border, #e5e7eb);font-size:13px;color:var(--text-muted, #6b7280)}.sum-ok{color:#15803d;font-weight:700}.sum-warn{color:#d97706;font-weight:700}.sum-alert{font-size:11px;color:#d97706}.btn-danger{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.btn-danger:hover:not(:disabled){background:#dc2626;color:#fff;border-color:#dc2626}.prof-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;padding:20px;width:min(520px,100%);height:fit-content;display:flex;flex-direction:column;gap:0;animation:modalIn .16s ease-out}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-close-btn{background:none;border:none;font-size:16px;cursor:pointer;color:var(--text-muted, #9ca3af);padding:2px 5px;border-radius:4px;line-height:1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.modal-compact{width:min(360px,100%);text-align:center;padding:28px 24px 22px;height:fit-content!important;align-self:center}.modal-compact-icon{width:44px;height:44px;border-radius:50%;background:#fef9c3;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.modal-compact-icon--danger{background:#fee2e2}.modal-compact h4{margin:0 0 8px;font-size:15px;font-weight:700}.modal-compact p{margin:0 0 18px;font-size:13px;color:var(--text-muted, #6b7280);line-height:1.5}.modal-compact .modal-actions{justify-content:center;margin-top:0}@media(max-width:760px){.prof-form-row,.prof-form-row--2{grid-template-columns:1fr}.prof-strip-actions{flex-wrap:wrap}}.panel-page{display:flex;flex-direction:column;min-height:calc(100vh - 60px);background:var(--bg, #f5f6fa)}.kpi-strip{display:flex;align-items:center;gap:0;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 16px;min-height:56px;flex-wrap:nowrap;overflow-x:auto;position:sticky;top:0;z-index:10}.kpi-strip::-webkit-scrollbar{height:3px}.kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.kpi-item{display:flex;flex-direction:column;padding:10px 18px;min-width:110px;flex-shrink:0}.kpi-item.kpi-ok .kpi-val{color:#16a34a}.kpi-item.kpi-warn .kpi-val{color:#d97706}.kpi-item.kpi-comp .kpi-val{color:var(--primary, #6366f1)}.kpi-lbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #9ca3af);white-space:nowrap}.kpi-val{font-size:16px;font-weight:700;color:var(--text, #111827);line-height:1.2;white-space:nowrap}.kpi-sub{font-size:12px;font-weight:400;color:var(--text-muted, #9ca3af)}.kpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.sidebar-toggle{margin-left:auto;flex-shrink:0;padding:7px 14px;font-size:12px;font-weight:600;border:1.5px solid var(--border, #d1d5db);border-radius:8px;background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;display:flex;align-items:center;gap:6px;transition:border-color .15s,background .15s;position:relative}.sidebar-toggle:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1)}.sidebar-toggle--open{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--primary, #6366f1);color:#fff;font-size:10px;font-weight:700}.panel-body{display:flex;flex:1;min-width:0}.panel-body--sidebar .panel-main{min-width:0}.panel-main{flex:1;min-width:0;padding:16px 20px 32px;display:flex;flex-direction:column;gap:10px}.panel-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.toolbar-left{display:flex;flex-direction:column;gap:2px}.toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-title{margin:0;font-size:18px;font-weight:700;color:var(--text, #111827)}.panel-subtitle{margin:0;font-size:12px;color:var(--text-muted, #6b7280)}.comp-hint{color:var(--primary, #6366f1)}.search-input{font-size:13px;padding:6px 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;width:200px;background:var(--surface, #fff);color:var(--text, #111827)}.search-meta{font-size:11px;color:var(--text-muted, #9ca3af);white-space:nowrap}.panel-paging{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-btn{font-size:12px;padding:5px 11px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);cursor:pointer;color:var(--text, #374151)}.page-btn:disabled{opacity:.4;cursor:default}.page-info{font-size:12px;color:var(--text-muted, #6b7280)}.page-select{font-size:12px;padding:4px 7px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);cursor:pointer}.panel-hscroll-top{overflow-x:auto;overflow-y:hidden;height:10px}.panel-hscroll-top::-webkit-scrollbar{height:5px}.panel-hscroll-top::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.panel-table-wrapper{overflow-x:auto;border:1px solid var(--border, #e5e7eb);border-radius:10px;background:var(--surface, #fff)}.panel-table-wrapper::-webkit-scrollbar{height:6px}.panel-table-wrapper::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.panel-table{width:100%;border-collapse:collapse;font-size:13px;min-width:860px}.panel-table thead th{background:var(--bg, #f8f9fa);padding:9px 10px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap;position:sticky;top:0;z-index:2}.panel-table thead th.th-comp{background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5)}.panel-table thead th.th-actions{text-align:right}.panel-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.panel-table tbody tr:hover{background:var(--bg, #fafafa)}.panel-table tbody tr.tr-has-comp{background:#f5f3ff}.panel-table tbody tr.tr-has-comp:hover{background:var(--primary-soft, #eef2ff)}.panel-table td{padding:7px 10px;vertical-align:middle;color:var(--text, #111827);white-space:nowrap}.panel-table td.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.panel-table td.td-produto{font-weight:500;white-space:normal;min-width:130px;max-width:180px}.panel-empty{text-align:center;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:14px}.margem-badge{display:inline-block;padding:2px 7px;border-radius:20px;font-size:11px;font-weight:600;font-family:monospace}.mb-green{background:#dcfce7;color:#15803d}.mb-yellow{background:#fef9c3;color:#92400e}.mb-red{background:#fee2e2;color:#b91c1c}.td-pos{color:#16a34a;font-weight:600;font-family:monospace;font-size:12px}.td-neg{color:#dc2626;font-weight:600;font-family:monospace;font-size:12px}.td-comp{background:var(--primary-soft, #eef2ff)!important;min-width:120px}.comp-cell{display:flex;flex-direction:column;gap:1px}.comp-price{font-family:monospace;font-size:12px;font-weight:600;color:var(--text, #111827)}.comp-diff{font-size:11px;font-weight:700;font-family:monospace}.diff-above{color:#16a34a}.diff-below{color:#dc2626}.diff-equal{color:#6b7280}.comp-name{font-size:10px;color:var(--text-muted, #9ca3af)}.comp-empty{color:var(--text-muted, #c4c8d0);font-size:13px}.td-input-cell{display:flex!important;align-items:center;gap:3px}.input-cell{width:78px;padding:3px 6px;font-size:12px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--surface, #fff);color:var(--text, #111827)}.input-cell.input-qty{width:56px}.input-cell:focus{outline:none;border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.btn-reset{font-size:11px;background:none;border:none;color:var(--text-muted, #9ca3af);cursor:pointer;padding:2px 3px;border-radius:3px}.btn-reset:hover{color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff)}.btn-insumos{font-size:11px;padding:3px 9px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--surface, #fff);cursor:pointer;color:var(--text, #374151)}.btn-insumos:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1)}.btn-del{font-size:11px;padding:3px 9px;border:1px solid var(--danger-border, #fca5a5);border-radius:5px;background:var(--danger-soft, #fef2f2);cursor:pointer;color:var(--danger, #dc2626)}.btn-del:hover{background:var(--danger, #dc2626);color:#fff}.sim-modal{background:var(--surface, #fff);border-radius:14px;width:min(960px,96vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px #00000038;animation:modalIn .18s ease-out}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.sim-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.sim-modal-title{margin:0;font-size:17px;font-weight:700;color:var(--text, #111827)}.sim-modal-sub{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.sim-modal-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--text-muted, #9ca3af);padding:2px 6px;border-radius:5px;line-height:1}.sim-modal-close:hover{background:var(--bg, #f5f6fa);color:var(--text, #374151)}.sim-save-panel{padding:14px 24px;background:var(--bg, #f8f9fa);border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.sim-save-panel-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);margin-bottom:8px}.sim-save-fields{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sim-field{flex:1;min-width:160px;font-size:13px;padding:7px 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827)}.sim-field:focus{outline:none;border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.sim-field-notes{flex:1.4}.sim-save-btn{padding:7px 18px;font-size:13px;font-weight:600;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;white-space:nowrap;transition:opacity .12s}.sim-save-btn:disabled{opacity:.6;cursor:default}.sim-save-btn:not(:disabled):hover{opacity:.88}.sim-body{display:grid;grid-template-columns:300px 1fr;flex:1;overflow:hidden}.sim-col-list{display:flex;flex-direction:column;border-right:1px solid var(--border, #e5e7eb);overflow:hidden}.sim-col-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);flex-shrink:0}.sim-col-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #9ca3af);flex-shrink:0}.sim-search-wrap{display:flex;align-items:center;gap:4px;flex:1}.sim-search{flex:1;font-size:12px;padding:4px 8px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--surface, #fff);color:var(--text, #111827);min-width:0}.sim-search-btn{font-size:13px;padding:3px 7px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--surface, #fff);cursor:pointer}.sim-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;background:var(--bg, #e5e7eb);font-size:11px;font-weight:700;color:var(--text-muted, #6b7280);padding:0 5px;flex-shrink:0}.sim-list-scroll{flex:1;overflow-y:auto}.sim-list-scroll::-webkit-scrollbar{width:4px}.sim-list-scroll::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.sim-placeholder{padding:32px 16px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.sim-row{padding:11px 14px;border-bottom:1px solid var(--border, #f3f4f6);cursor:pointer;transition:background .1s}.sim-row:hover{background:var(--bg, #fafafa)}.sim-row--active{background:var(--primary-soft, #eef2ff)!important;border-left:3px solid var(--primary, #6366f1);padding-left:11px}.sim-row-main{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:4px}.sim-row-name{font-size:13px;font-weight:600;color:var(--text, #111827)}.sim-row-date{font-size:10px;color:var(--text-muted, #9ca3af);white-space:nowrap;flex-shrink:0}.sim-row-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.sim-tag{display:inline-block;font-size:10px;padding:1px 6px;border-radius:4px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280)}.sim-tag-date{font-size:10px;color:var(--text-muted, #9ca3af)}.sim-row-actions{display:flex;gap:5px}.sim-act-btn{font-size:11px;padding:3px 9px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--surface, #fff);cursor:pointer;color:var(--text, #374151)}.sim-act-btn:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1)}.sim-act-danger{border-color:var(--danger-border, #fca5a5)!important;color:var(--danger, #dc2626)!important}.sim-act-danger:hover{background:var(--danger, #dc2626)!important;color:#fff!important;border-color:var(--danger, #dc2626)!important}.sim-col-detail{display:flex;flex-direction:column;overflow:hidden}.sim-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;color:var(--text-muted, #9ca3af);font-size:13px}.sim-detail-empty-icon{font-size:36px;opacity:.35}.sim-detail-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.sim-detail-name{font-size:15px;font-weight:700;margin-bottom:4px}.sim-detail-notes{font-size:12px;color:var(--text-muted, #6b7280);margin-bottom:6px}.sim-detail-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.sim-export-btn{font-size:12px;padding:6px 14px;white-space:nowrap;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5);cursor:pointer;font-weight:600}.sim-export-btn:hover{background:var(--primary, #6366f1);color:#fff}.sim-detail-kpis{display:flex;gap:0;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.sim-kpi{flex:1;padding:10px 14px;text-align:center;border-right:1px solid var(--border, #e5e7eb)}.sim-kpi:last-child{border-right:none}.sim-kpi--ok .sim-kpi-value{color:#16a34a}.sim-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af);margin-bottom:2px}.sim-kpi-value{font-size:14px;font-weight:700;color:var(--text, #111827)}.sim-detail-tablewrap{flex:1;overflow-y:auto}.sim-detail-tablewrap::-webkit-scrollbar{width:4px}.sim-detail-tablewrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.sim-detail-table{width:100%;border-collapse:collapse;font-size:12px}.sim-detail-table thead th{padding:8px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);position:sticky;top:0}.sim-detail-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6)}.sim-detail-table tbody tr:hover{background:var(--bg, #fafafa)}.sim-detail-table td{padding:7px 12px;color:var(--text, #111827)}.sim-detail-table td.mono{font-family:monospace;font-size:12px}@media(max-width:700px){.sim-body{grid-template-columns:1fr;grid-template-rows:auto auto}.sim-col-list{border-right:none;border-bottom:1px solid var(--border, #e5e7eb);max-height:240px}}.insumos-box{border:1px solid var(--border, #e5e7eb);border-radius:10px;background:var(--surface, #fff);overflow:hidden}.insumos-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.insumos-header h3{margin:0;font-size:13px;font-weight:600}.panel-sidebar{width:220px;min-width:220px;background:var(--surface, #fff);border-left:1px solid var(--border, #e5e7eb);padding:0 0 24px;display:flex;flex-direction:column;gap:0;animation:slideIn .18s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.sidebar-sec{padding:14px 14px 12px;border-bottom:1px solid var(--border, #f0f0f0);display:flex;flex-direction:column;gap:10px}.sidebar-sec-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted, #9ca3af)}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-label{font-size:11px;font-weight:600;color:var(--text-muted, #6b7280)}.filter-select{font-size:12px;padding:5px 7px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);color:var(--text, #111827);cursor:pointer}.filter-clear-all{font-size:11px;color:var(--danger, #ef4444);background:none;border:none;cursor:pointer;padding:0;text-align:left;text-decoration:underline}.comp-status-label{font-size:12px;font-weight:600;color:var(--success, #16a34a);display:flex;align-items:center;gap:6px}.comp-dot{width:7px;height:7px;border-radius:50%;background:var(--success, #22c55e);display:inline-block}.sidebar-comp-btn{font-size:12px;width:100%}@media(max-width:768px){.panel-sidebar{width:100%;min-width:0;border-left:none;border-top:1px solid var(--border,#e5e7eb)}.panel-body--sidebar{flex-direction:column-reverse}.kpi-item{min-width:90px;padding:8px 12px}}.comp-modal{background:var(--surface, #fff);border-radius:14px;width:min(860px,96vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px #00000038;animation:modalIn .18s ease-out}.comp-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.comp-modal-title{margin:0;font-size:16px;font-weight:700}.comp-modal-sub{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.comp-modal-body{display:grid;grid-template-columns:1fr 1fr;flex:1;overflow:hidden}.comp-col-import,.comp-col-history{padding:16px 20px;display:flex;flex-direction:column;gap:10px;overflow:hidden}.comp-col-import{border-right:1px solid var(--border, #e5e7eb)}.comp-col-history{overflow-y:auto}.comp-col-history::-webkit-scrollbar{width:4px}.comp-col-history::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.comp-col-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af)}.comp-col-title-row{display:flex;align-items:center;gap:8px}.comp-clear-all{margin-left:auto;font-size:11px;color:var(--danger, #ef4444);background:none;border:none;cursor:pointer;text-decoration:underline}.comp-format-box{background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:7px;padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:2px}.comp-code{background:var(--primary-soft, #eef2ff);padding:2px 6px;border-radius:4px;font-size:11px}.comp-label-input{font-size:13px;padding:7px 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827)}.comp-label-input:focus{outline:none;border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.comp-dropzone{border:2px dashed var(--border, #d1d5db);border-radius:8px;background:var(--bg-soft, #fafafa);padding:24px 12px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;transition:all .14s;flex:1}.comp-dropzone--drag{border-color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff)}.comp-dropzone-icon{font-size:22px;opacity:.4}.comp-dropzone-text{font-size:13px;opacity:.8}.comp-dropzone-hint{font-size:11px;opacity:.45}.comp-preview{display:flex;flex-direction:column;gap:6px;flex:1;overflow:hidden}.comp-preview-title{font-size:12px;font-weight:600}.comp-preview-table-wrap{flex:1;overflow-y:auto;border:1px solid var(--border, #e5e7eb);border-radius:6px;max-height:200px}.comp-preview-table{width:100%;border-collapse:collapse;font-size:12px}.comp-preview-table th{padding:6px 8px;background:var(--bg, #f8f9fa);border-bottom:1px solid var(--border, #e5e7eb);text-align:left;font-weight:600;font-size:11px}.comp-preview-table td{padding:5px 8px;border-bottom:1px solid var(--border, #f3f4f6)}.comp-submit-btn{flex:1;padding:7px 14px;font-size:12px;font-weight:600;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer}.comp-submit-btn:disabled{opacity:.6;cursor:default}.comp-submit-btn:not(:disabled):hover{opacity:.88}.comp-batch-list{display:flex;flex-direction:column;gap:8px}.comp-batch-row{background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}.comp-batch-main{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.comp-batch-label{font-size:13px;font-weight:600;color:var(--text, #111827)}.comp-batch-date{font-size:10px;color:var(--text-muted, #9ca3af);white-space:nowrap}.comp-batch-meta{display:flex;flex-wrap:wrap;gap:4px}@media(max-width:640px){.comp-modal-body{grid-template-columns:1fr}.comp-col-import{border-right:none;border-bottom:1px solid var(--border, #e5e7eb)}}.auth3-shell{min-height:100vh;background:var(--bg, #f5f6fa);color:var(--text, #111827);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;display:grid;place-items:center;padding:24px}.auth3-card{width:min(480px,100%);background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:16px;padding:32px 28px 28px;box-shadow:0 8px 40px #0206171a}.auth3-top{display:flex;justify-content:center;margin-bottom:20px}.auth3-logo{width:56px;height:56px;object-fit:contain;border-radius:12px;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);box-shadow:0 4px 14px #02061714;padding:8px}.auth3-header{margin-bottom:20px}.auth3-header h2{margin:0 0 6px;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text, #111827)}.auth3-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280);line-height:1.5}.auth3-alert{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:8px;border:1px solid #fca5a5;background:#fef2f2;color:#b91c1c;font-size:13px;font-weight:600;margin-bottom:16px}.auth3-alert-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;flex-shrink:0;margin-top:4px}.auth3-form{display:flex;flex-direction:column;gap:16px}.auth3-group{display:flex;flex-direction:column;gap:5px}.auth3-group label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280)}.auth3-group input{width:100%;height:40px;padding:0 13px;border-radius:8px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #111827);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.auth3-group input::placeholder{color:var(--text-muted, #c4c8d0)}.auth3-group input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.auth3-pass{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.auth3-pass-toggle{height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--border, #d1d5db);background:var(--bg, #f5f6fa);color:var(--text-muted, #6b7280);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.auth3-pass-toggle:hover{background:var(--surface, #fff);border-color:var(--primary, #6366f1);color:var(--primary, #4f46e5)}.auth3-button{height:42px;border-radius:8px;border:1.5px solid var(--primary, #6366f1);background:var(--primary, #6366f1);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s;margin-top:4px}.auth3-button:hover:not(:disabled){opacity:.88}.auth3-button:disabled{opacity:.55;cursor:not-allowed}.auth3-footnote{text-align:center;font-size:12px;color:var(--text-muted, #9ca3af);line-height:1.5}.admin-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.admin-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.admin-kpi-strip::-webkit-scrollbar{height:3px}.admin-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.akpi{display:flex;flex-direction:column;padding:10px 18px;flex-shrink:0}.akpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.akpi-val{font-size:20px;font-weight:800;color:var(--text, #111827);line-height:1.2}.akpi-ok{color:#16a34a}.akpi-blue{color:#2563eb}.akpi-warn{color:#d97706}.akpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.admin-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.admin-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.admin-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.admin-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.admin-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.admin-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);flex-wrap:wrap}.admin-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.admin-search-wrap{position:relative;flex:1;max-width:400px;min-width:200px}.admin-search{width:100%;height:34px;font-size:13px;padding:0 32px 0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.admin-search:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.admin-search::placeholder{color:var(--text-muted, #c4c8d0);font-size:12px}.admin-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;border:1px solid var(--border, #e5e7eb);background:var(--bg, #f5f6fa);color:var(--text-muted, #9ca3af);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center}.admin-search-clear:hover{background:var(--border, #e5e7eb);color:var(--text, #374151)}.admin-table-wrap{overflow-x:auto}.admin-table-wrap::-webkit-scrollbar{height:5px}.admin-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:860px}.admin-table thead th{padding:9px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.admin-table thead th.th-actions{text-align:right}.admin-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.admin-table tbody tr:hover{background:var(--bg, #fafafa)}.admin-table td{padding:9px 12px;vertical-align:middle}.td-name{font-weight:600;color:var(--text, #111827)}.td-url{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700}.chip-ok{background:#f0fdf4;color:#15803d;border:1px solid #86efac}.chip-off{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.chip-admin{background:#fef9c3;color:#92400e;border:1px solid #fde68a}.chip-user{background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5);border:1px solid #c7d2fe}.chip-warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.chip-neutral{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.admin-icon-btn{width:30px;height:30px;border-radius:6px;border:1px solid var(--border, #e5e7eb);background:var(--surface, #fff);color:var(--text-muted, #6b7280);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s}.admin-icon-btn:hover:not(:disabled){background:var(--bg, #f5f6fa);color:var(--text, #374151);border-color:var(--text-muted, #9ca3af)}.admin-icon-btn:disabled{opacity:.4;cursor:default}.admin-icon-btn--danger:hover:not(:disabled){background:#fef2f2;color:#dc2626;border-color:#fca5a5}.admin-empty{text-align:center!important;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:13px}.admin-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;width:min(520px,100%);height:fit-content;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}.admin-modal--compact{width:min(420px,100%)}.modal-close-btn:hover:not(:disabled){background:var(--bg, #f5f6fa);color:var(--text, #374151)}.admin-form{display:flex;flex-direction:column;gap:14px;padding:16px 20px}.admin-field{display:flex;flex-direction:column;gap:4px}.admin-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af)}.admin-req{color:#ef4444;margin-left:2px}.admin-hint{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:2px}.admin-input{height:36px;font-size:13px;padding:0 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;transition:border-color .15s,box-shadow .15s}.admin-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.admin-input::placeholder{color:var(--text-muted, #c4c8d0);font-size:12px}.admin-toggle-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text, #374151);cursor:pointer}.admin-toggle-check input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary, #6366f1);cursor:pointer}.admin-pass-result{display:flex;flex-direction:column;gap:10px;padding:16px 20px}.admin-pass-title{margin:0;font-size:14px;font-weight:700;color:#15803d}.admin-pass-sub{margin:0;font-size:12px;color:var(--text-muted, #6b7280);line-height:1.4}.admin-pass-box{padding:12px 14px;border-radius:8px;border:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);font-family:SFMono-Regular,Consolas,monospace;font-size:14px;font-weight:700;color:var(--text, #111827);word-break:break-all;letter-spacing:.04em}@media(max-width:760px){.akpi{padding:8px 12px}.akpi-val{font-size:16px}.admin-search-wrap{max-width:100%}}.inv-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.inv-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.inv-kpi-strip::-webkit-scrollbar{height:3px}.inv-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.ikpi{display:flex;flex-direction:column;padding:10px 20px;flex-shrink:0}.ikpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.ikpi-val{font-size:20px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap}.ikpi-danger{color:#dc2626}.ikpi-warn{color:#d97706}.ikpi-ok{color:#16a34a}.ikpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.inv-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.inv-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.inv-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.inv-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.inv-alert-banner{display:flex;flex-direction:column;gap:8px}.inv-alert-item{display:flex;align-items:baseline;gap:10px;padding:10px 14px;border-radius:8px;font-size:13px;flex-wrap:wrap}.inv-alert-item--danger{background:#fef2f2;border:1px solid #fca5a5}.inv-alert-item--warn{background:#fffbeb;border:1px solid #fde68a}.inv-alert-label{font-weight:700;flex-shrink:0}.inv-alert-item--danger .inv-alert-label{color:#dc2626}.inv-alert-item--warn .inv-alert-label{color:#d97706}.inv-alert-names{font-size:12px;color:var(--text-muted, #6b7280)}.inv-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.inv-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.inv-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.inv-count-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280);border:1px solid var(--border, #e5e7eb)}.inv-filters{display:flex;align-items:center;gap:10px;padding:12px 16px;flex-wrap:wrap}.inv-search-wrap{position:relative;flex:1 1 360px;min-width:220px}.inv-input{height:38px;font-size:13px;padding:0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;width:100%}.inv-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.inv-input::placeholder{color:var(--text-muted, #c4c8d0);font-size:12px}.inv-search{padding-right:34px}.inv-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:4px;border:1px solid var(--border, #e5e7eb);background:var(--bg, #f5f6fa);color:var(--text-muted, #9ca3af);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;transition:background .12s}.inv-search-clear:hover{background:var(--border, #e5e7eb);color:var(--text, #374151)}.inv-toggle-check{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:7px;border:1px solid var(--border, #e5e7eb);background:var(--surface, #fff);font-size:13px;color:var(--text, #374151);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s;white-space:nowrap}.inv-toggle-check:hover{background:var(--bg, #f5f6fa)}.inv-toggle-check input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary, #6366f1);flex-shrink:0;cursor:pointer}.inv-table-wrap{overflow-x:auto}.inv-table-wrap::-webkit-scrollbar{height:5px}.inv-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.inv-table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}.inv-table thead th{padding:9px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.inv-table thead th.th-actions{text-align:right}.inv-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.inv-table tbody tr:hover{background:var(--bg, #fafafa)}.inv-table td{padding:9px 12px;vertical-align:top}.td-mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px;white-space:nowrap}.td-actions{text-align:right;vertical-align:middle}.inv-item-name{font-weight:600;color:var(--text, #111827)}.inv-item-meta{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:2px}.inv-unit{font-size:11px;color:var(--text-muted, #9ca3af);margin-left:3px}.inv-inline-field{display:flex;align-items:center;gap:6px}.inv-mini-input{height:32px;font-size:12px;padding:0 8px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.inv-mini-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.inv-mini-input::placeholder{color:var(--text-muted, #c4c8d0);font-size:11px}.inv-params-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.inv-status{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap}.inv-status:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%}.inv-status--buy_now{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.inv-status--buy_now:before{background:#dc2626}.inv-status--buy_soon{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.inv-status--buy_soon:before{background:#f59e0b}.inv-status--ok{background:#f0fdf4;color:#15803d;border:1px solid #86efac}.inv-status--ok:before{background:#22c55e}.inv-status--disabled,.inv-status--no_data{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.inv-status--disabled:before,.inv-status--no_data:before{background:#d1d5db}.inv-save-btn{height:32px;padding:0 14px;font-size:12px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:6px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.inv-save-btn:hover:not(:disabled){opacity:.88}.inv-save-btn:disabled{opacity:.4;cursor:default}.inv-table-hint{padding:10px 16px;font-size:11px;color:var(--text-muted, #9ca3af);border-top:1px solid var(--border, #f3f4f6)}.inv-table-hint strong{color:var(--text, #374151)}.inv-empty{text-align:center!important;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:13px}@media(max-width:760px){.inv-params-grid{grid-template-columns:1fr}.ikpi{padding:8px 12px}.ikpi-val{font-size:16px}}.fi-page{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px;background:var(--bg, #f5f6fa);min-height:calc(100vh - 56px)}.fi-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.fi-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.fi-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.fi-toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-radius:9px;font-size:13px;font-weight:500}.fi-toast button{background:transparent;border:none;cursor:pointer;color:inherit;opacity:.6;font-size:14px;padding:2px 6px;border-radius:5px;transition:opacity .15s}.fi-toast button:hover{opacity:1}.fi-toast-success{background:var(--success-soft, #f0fdf4);border:1px solid #86efac;color:#15803d}.fi-toast-error{background:var(--danger-soft, #fef2f2);border:1px solid #fca5a5;color:#dc2626}.fi-actions-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:stretch}@media(max-width:900px){.fi-actions-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.fi-actions-grid{grid-template-columns:1fr}}.fi-upload-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:10px;cursor:pointer;border:2px dashed transparent;background:var(--surface, #fff);transition:all .15s;-webkit-user-select:none;user-select:none}.fi-upload-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.08))}.fi-upload-card.fi-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.fi-upload-payable{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.fi-upload-payable:hover{border-color:#3b82f6;background:#dbeafe}.fi-upload-receivable{border-color:#86efac;background:#f0fdf4;color:#15803d}.fi-upload-receivable:hover{border-color:#22c55e;background:#dcfce7}.fi-upload-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0;background:#ffffffb3}.fi-upload-label{display:flex;flex-direction:column;gap:2px}.fi-upload-label strong{font-size:13px;font-weight:700}.fi-upload-label span{font-size:11px;opacity:.65;text-transform:uppercase;letter-spacing:.05em}.fi-confirm-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;border:2px dashed var(--border, #d1d5db);cursor:not-allowed;background:var(--bg, #f5f6fa);opacity:.45;transition:all .15s;text-align:left;color:var(--text, #111827)}.fi-confirm-btn.fi-confirm-active{border-color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff);color:#4338ca;cursor:pointer;opacity:1;border-style:solid}.fi-confirm-btn.fi-confirm-active:hover{background:#e0e7ff;transform:translateY(-1px);box-shadow:0 6px 20px #6366f12e}.fi-confirm-btn.fi-confirm-active:disabled{opacity:.5;transform:none;cursor:not-allowed}.fi-confirm-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0;background:#6366f126}.fi-confirm-btn div{display:flex;flex-direction:column;gap:2px}.fi-confirm-btn strong{font-size:13px;font-weight:700}.fi-confirm-btn span{font-size:11px;opacity:.65}.fi-secondary-actions{display:flex;flex-direction:column;gap:8px}.fi-sec-btn{padding:9px 14px;border-radius:8px;border:1px solid var(--border, #e5e7eb);background:var(--surface, #fff);font-size:13px;font-weight:500;cursor:pointer;color:var(--text-muted, #6b7280);transition:all .15s;white-space:nowrap;text-align:left}.fi-sec-btn:hover:not(:disabled){background:var(--bg, #f5f6fa);color:var(--text, #374151);border-color:var(--text-muted, #9ca3af)}.fi-sec-btn.fi-sec-active{background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5);border-color:var(--primary, #6366f1)}.fi-sec-btn:disabled{opacity:.4;cursor:not-allowed}.fi-loading{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-muted, #6b7280)}.fi-loading-bar{height:3px;width:120px;border-radius:99px;background:linear-gradient(90deg,#6366f14d,#6366f1,#6366f14d);background-size:200% 100%;animation:fi-shimmer 1.2s infinite}@keyframes fi-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fi-summary-bar{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;flex-wrap:wrap}.fi-summary-item{display:flex;flex-direction:column;align-items:center;gap:1px}.fi-summary-val{font-size:18px;font-weight:800;letter-spacing:-.5px;line-height:1;color:var(--text, #111827)}.fi-summary-key{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #9ca3af)}.fi-summary-sep{color:var(--border, #d1d5db);font-size:18px}.fi-val-green{color:#15803d}.fi-val-red{color:#dc2626}.fi-val-blue{color:#2563eb}.fi-summary-file{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted, #9ca3af)}.fi-file-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280)}.fi-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;overflow:hidden}.fi-card-warn{border-color:#fde68a;background:#fffbeb}.fi-card-error{border-color:#fca5a5;background:#fef2f2}.fi-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);flex-wrap:wrap}.fi-card-head h3{margin:0;font-size:13px;font-weight:700;color:var(--text, #111827);display:flex;align-items:center;gap:8px}.fi-card-sub{font-size:11px;color:var(--text-muted, #9ca3af);margin:0}.fi-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280)}.fi-badge-warn{background:#fef3c7;color:#92400e}.fi-badge-error{background:#fee2e2;color:#b91c1c}.fi-preview-wrap{overflow-x:auto;max-height:360px;overflow-y:auto}.fi-preview-wrap::-webkit-scrollbar{width:4px;height:4px}.fi-preview-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.fi-preview-table{width:100%;border-collapse:collapse;font-size:12px;min-width:600px}.fi-preview-table thead{position:sticky;top:0;z-index:1}.fi-preview-table th{padding:8px 12px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap;background:var(--bg, #f8f9fa)}.fi-preview-table td{padding:7px 12px;border-bottom:1px solid var(--border, #f3f4f6);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--text, #111827)}.fi-preview-table tr:hover td{background:var(--bg, #fafafa)}.fi-preview-count{padding:8px 16px;font-size:11px;color:var(--text-muted, #9ca3af);border-top:1px solid var(--border, #e5e7eb)}.fi-log-wrap{max-height:220px;overflow-y:auto;padding:4px 0}.fi-log-wrap::-webkit-scrollbar{width:4px}.fi-log-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.fi-log-row{display:flex;align-items:baseline;gap:12px;padding:6px 16px;font-size:12px;border-bottom:1px solid var(--border, #f3f4f6)}.fi-log-num{flex-shrink:0;font-size:11px;font-weight:700;color:var(--text-muted, #9ca3af);min-width:56px;font-family:monospace}.fi-log-msg{color:var(--text, #374151)}.fi-manual-type-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border, #e5e7eb)}.fi-type-btn{padding:6px 16px;border:none;background:transparent;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-muted, #6b7280);transition:all .15s}.fi-type-btn.active{background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5);font-weight:700}.fi-manual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}@media(max-width:900px){.fi-manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.fi-manual-grid{grid-template-columns:1fr}}.fi-field{display:flex;flex-direction:column;gap:5px}.fi-field-wide{grid-column:1 / -1}.fi-field label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280)}.fi-req{color:#ef4444;margin-left:2px}.fi-input{height:36px;padding:0 11px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #111827);font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.fi-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.fi-input:disabled{opacity:.4;cursor:not-allowed;background:var(--bg, #f3f4f6)}.fi-input-hint{font-size:11px;color:var(--text-muted, #9ca3af)}.fi-manual-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 16px;border-top:1px solid var(--border, #e5e7eb);flex-wrap:wrap}.fi-manual-hint{font-size:12px;color:var(--text-muted, #9ca3af);flex:1}.fi-save-btn{height:36px;padding:0 20px;border-radius:7px;border:1.5px solid var(--primary, #6366f1);background:var(--primary, #6366f1);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s}.fi-save-btn:hover:not(:disabled){opacity:.88}.fi-save-btn:disabled{opacity:.4;cursor:not-allowed}.fi-result{border-radius:10px;padding:14px 16px;font-size:12px;position:relative}.fi-result-ok{background:var(--success-soft, #f0fdf4);border:1px solid #86efac}.fi-result-error{background:var(--danger-soft, #fef2f2);border:1px solid #fca5a5}.fi-result pre{margin:0;overflow:auto;font-family:monospace;font-size:11px;color:var(--text, #374151)}.fi-result-close{position:absolute;top:10px;right:10px;background:transparent;border:none;cursor:pointer;opacity:.4;font-size:12px;color:inherit;padding:2px 6px;border-radius:4px}.fi-result-close:hover{opacity:.9;background:var(--bg, #f5f6fa)}.fi-empty{padding:32px;text-align:center;color:var(--text-muted, #9ca3af);font-size:14px}.fi-plan-banner{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:28px 24px;box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.06))}.fi-plan-banner-loading{text-align:center;color:var(--text-muted, #6b7280);font-size:14px;padding:12px 0}.fi-plan-selector-header{text-align:center;margin-bottom:24px}.fi-plan-selector-header h3{font-size:17px;font-weight:700;color:var(--text, #111827);margin:0 0 8px}.fi-plan-selector-header p{font-size:13px;color:var(--text-muted, #6b7280);margin:0 0 12px}.fi-plan-warning{display:inline-block;font-size:12px;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;padding:5px 12px}.fi-plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}@media(max-width:640px){.fi-plan-cards{grid-template-columns:1fr}}.fi-plan-card{background:var(--bg, #f8f9fa);border:2px solid var(--border, #e5e7eb);border-radius:10px;padding:18px 16px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:7px;font-family:inherit;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.fi-plan-card:hover:not(:disabled){border-color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff);transform:translateY(-2px);box-shadow:0 4px 14px #6366f11f}.fi-plan-card-selected{border-color:var(--primary, #6366f1)!important;background:var(--primary-soft, #eef2ff)!important;box-shadow:0 0 0 3px #6366f133!important}.fi-plan-card-icon{font-size:1.7rem}.fi-plan-card-label{font-size:14px;font-weight:700;color:var(--text, #111827)}.fi-plan-card-desc{font-size:12px;color:var(--text-muted, #6b7280);line-height:1.45}.fi-plan-card-highlights{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}.fi-plan-card-highlights li{font-size:11px;color:var(--primary, #4f46e5);font-weight:600}.fi-plan-error{background:var(--danger-soft, #fef2f2);border:1px solid #fca5a5;color:#b91c1c;border-radius:8px;padding:9px 14px;font-size:13px;text-align:center;margin-bottom:16px}.fi-plan-selector-footer{display:flex;justify-content:center;gap:10px}.fi-plan-confirm-btn{height:38px;padding:0 28px;border-radius:7px;border:none;background:var(--primary, #6366f1);color:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}.fi-plan-confirm-btn:hover:not(:disabled){opacity:.88}.fi-plan-confirm-btn:disabled{background:#c7d2fe;cursor:not-allowed}.fi-plan-cancel-btn{height:38px;padding:0 20px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:transparent;color:var(--text-muted, #6b7280);font-size:13px;cursor:pointer;transition:background .15s}.fi-plan-cancel-btn:hover{background:var(--bg, #f5f6fa);color:var(--text, #374151)}.fi-plan-cancel-btn:disabled{opacity:.4;cursor:not-allowed}.fi-content-blocked{opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;filter:blur(1px);transition:opacity .2s}.fi-plan-badge{display:flex;align-items:center;gap:7px;background:var(--primary-soft, #eef2ff);border:1px solid #c7d2fe;border-radius:8px;padding:7px 14px;font-size:13px;color:#4338ca;font-weight:600;white-space:nowrap}.fi-plan-badge-icon{font-size:14px}.fi-plan-badge-label{font-size:13px}.fi-plan-badge-change{margin-left:8px;padding:2px 9px;font-size:11px;border-radius:5px;border:1px solid #a5b4fc;background:transparent;color:#6366f1;cursor:pointer;transition:background .15s}.fi-plan-badge-change:hover{background:#e0e7ff}.dre-page{padding:20px 20px 40px;background:var(--bg, #f5f6fa);min-height:calc(100vh - 56px);display:flex;flex-direction:column;gap:14px}.dre-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.dre-title h2{margin:0;font-size:18px;font-weight:700;color:var(--text, #111827)}.dre-title p{margin:4px 0 0;font-size:13px;color:var(--text-muted, #6b7280)}.dre-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.dre-toolbar{padding:14px 16px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;background:var(--bg, #f8f9fa);border-bottom:1px solid var(--border, #e5e7eb)}.dre-toolbar-left{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.dre-field{display:flex;flex-direction:column;gap:4px}.dre-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #9ca3af)}.dre-input{height:36px;padding:0 11px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #111827);font-size:13px;outline:none;min-width:160px;transition:border-color .15s,box-shadow .15s}.dre-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.dre-btn{height:36px;padding:0 16px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #374151);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.dre-btn:hover:not(:disabled){background:var(--bg, #f5f6fa);border-color:var(--text-muted, #9ca3af)}.dre-btn:disabled{opacity:.5;cursor:not-allowed}.dre-btn-primary{background:var(--primary, #6366f1);border-color:var(--primary, #6366f1);color:#fff}.dre-btn-primary:hover:not(:disabled){opacity:.88;background:var(--primary, #6366f1)}.dre-kpis{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(140px,1fr));padding:14px}@media(max-width:1100px){.dre-kpis{grid-template-columns:repeat(2,1fr)}}.kpi{background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:3px}.kpi .label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #9ca3af)}.kpi .value{font-size:17px;font-weight:800;color:var(--text, #111827);font-family:monospace}.kpi .sub{font-size:11px;color:var(--text-muted, #9ca3af)}.dre-section{padding:14px 16px}.dre-error{border:1px solid #fca5a5;background:#fef2f2;border-radius:8px}.dre-pre{margin:0;overflow:auto;white-space:pre-wrap;font-family:monospace;font-size:12px;background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);border-radius:7px;padding:12px}.dre-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:20px;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);font-size:13px;font-weight:600;color:var(--text, #374151)}.dre-plan-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:8px;border:1px solid #c7d2fe;background:var(--primary-soft, #eef2ff);font-size:13px;color:var(--text, #111827)}.dre-plan-banner-icon{font-size:16px;line-height:1}.dre-plan-banner-text strong{font-weight:700}.dre-plan-banner-text span{color:var(--text-muted, #6b7280);margin-left:6px;font-size:12px}.dre-plan-banner-none{border-color:#fde68a;background:#fffbeb}.dre-sheet-wrap{overflow:auto;border:1px solid var(--border, #e5e7eb);border-radius:10px;max-height:75vh;background:var(--surface, #fff)}.dre-sheet-wrap::-webkit-scrollbar{width:5px;height:5px}.dre-sheet-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.dre-sheet{width:max-content;min-width:100%;border-collapse:collapse;font-size:13px;background:var(--surface, #fff)}.dre-sheet th,.dre-sheet td{border-bottom:1px solid var(--border, #e9ecef);border-right:1px dotted rgba(15,23,42,.1);padding:7px 10px;white-space:nowrap}.dre-sheet thead th{position:sticky;top:0;background:var(--bg, #f8f9fa);z-index:3;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b7280)}.dre-sheet .subhead{font-weight:700;color:var(--text-muted, #6b7280);background:var(--bg, #f3f4f6);font-size:10px}.dre-sheet thead th.month-group{text-align:center;border-right:2px solid var(--border, #d1d5db);font-weight:700;color:var(--text, #374151);text-transform:none;font-size:12px}.dre-sheet .td-right{text-align:right}.dre-sheet .sticky-col{position:sticky;left:0;background:var(--surface, #fff);z-index:4;min-width:300px;border-right:2px solid var(--border, #e5e7eb)}.dre-sheet thead .sticky-col{background:var(--bg, #f8f9fa);z-index:5}.dre-sheet .month-end{border-right:2px solid var(--border, #d1d5db)!important}.dre-sheet .total-split{border-left:2px solid var(--border, #d1d5db)!important}.dre-sheet .line-name{font-weight:600;color:var(--text, #111827)}.dre-sheet .line-header{font-weight:800;color:var(--text, #111827)}.dre-sheet .line-warn{font-weight:700;color:#d97706}.dre-sheet .row-header td{background:var(--primary-soft, #eef2ff);font-weight:800;border-top:2px solid #c7d2fe;border-bottom:2px solid #c7d2fe}.dre-sheet .row-header .sticky-col{background:#e0e7ff}.row-group-header td{background:var(--bg, #f8f9fa);border-top:1px solid var(--border, #e5e7eb)}.line-group-name{font-size:13px;font-weight:700;color:var(--text, #374151)}.row-child td{font-size:12px;background:#0f172a01}.row-child:hover td{background:var(--primary-soft, #eef2ff)}.row-fixed-child td{font-size:12px;opacity:.9}.row-fixed-child:hover td{background:var(--bg, #fafafa)}.dre-bullet{margin-right:6px;color:var(--text-muted, #9ca3af)}.dre-expand-btn{all:unset;display:inline-flex;align-items:center;cursor:pointer;padding:2px 4px;border-radius:5px;transition:background .1s}.dre-expand-btn:hover{background:var(--bg, #f3f4f6)}.dre-plusminus{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);font-size:11px;color:var(--text-muted, #6b7280)}.dre-add-group-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;border:1px solid transparent;background:none;color:var(--text-muted, #9ca3af);font-size:12px;cursor:pointer;padding:0;flex-shrink:0;transition:all .12s;opacity:0}tr:hover .dre-add-group-btn,.dre-add-group-btn:focus{opacity:1;border-color:var(--border, #d1d5db)}.dre-add-group-btn:hover{border-color:var(--primary, #6366f1);background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5)}.dre-group-actions{display:inline-flex;gap:4px;margin-left:6px;opacity:0;transition:opacity .12s}tr:hover .dre-group-actions{opacity:1}.dre-action-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;border:1px solid var(--border, #d1d5db);background:none;color:var(--text-muted, #9ca3af);font-size:11px;cursor:pointer;padding:0;transition:all .12s}.dre-action-btn:hover{border-color:var(--text-muted, #9ca3af);background:var(--bg, #f5f6fa);color:var(--text, #374151)}.dre-action-del:hover{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e}.input{width:100%;height:36px;padding:0 11px;font-size:13px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 16px;font-size:13px;font-weight:600;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;white-space:nowrap;transition:background .12s}.btn-secondary{background:transparent;border-color:transparent;color:var(--text-muted, #6b7280)}.btn-secondary:hover:not(:disabled){background:var(--bg, #f5f6fa);color:var(--text, #374151);border-color:var(--border, #e5e7eb)}.btn-primary{background:var(--primary, #6366f1);border-color:var(--primary, #6366f1);color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}@media(max-width:900px){.dre-toolbar-left{flex-direction:column;align-items:stretch}.dre-input{min-width:0;width:100%}}.dre-dash{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.dre-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.dre-kpi-strip::-webkit-scrollbar{height:3px}.dre-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.dkpi{display:flex;flex-direction:column;padding:10px 18px;flex-shrink:0}.dkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.dkpi-val{font-size:15px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;font-family:SFMono-Regular,Consolas,monospace}.dkpi-pos{color:#15803d}.dkpi-neg{color:#dc2626}.dkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.dre-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.mode-toggle{display:flex;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);border-radius:20px;padding:3px;gap:2px}.mode-btn{border:none;background:transparent;border-radius:16px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.mode-btn:hover{background:#ffffffb3;color:var(--text, #374151)}.mode-btn--active{background:var(--text, #111827);color:#fff;box-shadow:0 2px 8px #0206172e}.btn{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:6px 13px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;white-space:nowrap;transition:background .12s}.btn-ghost:hover:not(:disabled){background:var(--bg, #f5f6fa);color:var(--text, #374151)}.btn-ai{background:#0f172a;color:#fff;border:none;border-radius:7px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .15s}.btn-ai:hover:not(:disabled){opacity:.85}.btn-ai:disabled{opacity:.5;cursor:default}.dre-body{display:flex;flex-direction:column;gap:16px;padding:20px}.dre-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.dre-page-header h2{margin:0;font-size:18px;font-weight:700;color:var(--text, #111827)}.dre-date-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dre-date-label{font-size:12px;color:var(--text-muted, #6b7280);font-weight:600}.dre-date-input{height:34px;font-size:13px;padding:0 10px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.dre-date-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.dre-charts{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}.chart-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}.chart-card--span{grid-column:1 / -1}.chart-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.chart-card-head h4{margin:0;font-size:13px;font-weight:700;color:var(--text, #111827)}.chart-mode-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;background:var(--primary-soft, #eef2ff);color:var(--primary, #6366f1);text-transform:uppercase;letter-spacing:.05em}.modal-backdrop{position:fixed;inset:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;z-index:9999}.chat-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:14px;box-shadow:0 24px 80px #02061738;width:min(800px,96vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}.chat-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.chat-modal-head h4{margin:0;font-size:15px;font-weight:700;color:var(--text, #111827)}.chat-modal-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.chat-messages{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px;background:var(--bg, #f8f9fa)}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.chat-msg{display:flex}.chat-msg--user{justify-content:flex-end}.chat-msg--ai{justify-content:flex-start}.chat-bubble{max-width:78%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5;white-space:pre-wrap}.chat-msg--user .chat-bubble{background:var(--primary, #6366f1);color:#fff;border-bottom-right-radius:4px}.chat-msg--ai .chat-bubble{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);color:var(--text, #111827);border-bottom-left-radius:4px}.chat-bubble--loading{display:flex;align-items:center;gap:4px;padding:12px 16px}.chat-bubble--loading span{width:6px;height:6px;border-radius:50%;background:var(--text-muted, #9ca3af);animation:dotPulse 1.2s ease-in-out infinite}.chat-bubble--loading span:nth-child(2){animation-delay:.2s}.chat-bubble--loading span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.1);opacity:1}}.chat-error{padding:8px 16px;font-size:12px;color:#dc2626;background:#fef2f2;border-top:1px solid #fca5a5;flex-shrink:0}.chat-input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border, #e5e7eb);flex-shrink:0;background:var(--surface, #fff)}.chat-input{flex:1;height:38px;font-size:13px;padding:0 12px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.chat-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.btn-send{height:38px;padding:0 18px;font-size:13px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.btn-send:hover:not(:disabled){opacity:.88}.btn-send:disabled{opacity:.5;cursor:default}.chat-hint{padding:8px 16px 12px;font-size:11px;color:var(--text-muted, #9ca3af);background:var(--surface, #fff);flex-shrink:0}@media(max-width:900px){.dre-charts{grid-template-columns:1fr}.chart-card--span{grid-column:auto}.dre-strip-actions{flex-wrap:wrap}}.fe-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.fe-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.fe-kpi-strip::-webkit-scrollbar{height:3px}.fe-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.fekpi{display:flex;flex-direction:column;padding:10px 18px;flex-shrink:0}.fekpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.fekpi-val{font-size:16px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;font-family:SFMono-Regular,Consolas,monospace}.fekpi-ok{color:#16a34a}.fekpi-warn{color:#d97706}.fekpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.fe-strip-tabs{display:flex;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);border-radius:20px;padding:3px;gap:2px;margin-left:16px;flex-shrink:0}.fe-strip-tab{border:none;background:transparent;border-radius:16px;padding:5px 14px;font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.fe-strip-tab:hover{background:#ffffffb3;color:var(--text, #374151)}.fe-strip-tab--active{background:var(--text, #111827);color:#fff;box-shadow:0 2px 6px #02061726}.fe-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:12px}.btn-save{height:38px;padding:0 20px;font-size:13px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.fe-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.fe-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.fe-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.fe-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.fe-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.fe-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.fe-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280);border:1px solid var(--border, #e5e7eb)}.fe-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 16px}.fe-field-group{display:flex;flex-direction:column;gap:4px}.fe-field-wide{flex:1 1 300px;min-width:240px}.fe-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af)}.fe-req{color:#ef4444;margin-left:2px}.fe-input{height:36px;font-size:13px;padding:0 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;min-width:130px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.fe-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.fe-input:disabled{opacity:.45;background:var(--bg, #f3f4f6);cursor:not-allowed}.fe-input::placeholder{color:var(--text-muted, #c4c8d0);font-size:12px}.fe-input-sm{min-width:80px}.fe-plan-row{display:flex;align-items:center;gap:6px}.fe-plan-row .fe-input{flex:1;min-width:180px}.fe-pagination{display:flex;align-items:center;gap:6px}.fe-page-btn{width:30px;height:30px;border-radius:6px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);font-size:14px;cursor:pointer;color:var(--text, #374151);display:flex;align-items:center;justify-content:center;transition:background .1s}.fe-page-btn:hover:not(:disabled){background:var(--bg, #f5f6fa)}.fe-page-btn:disabled{opacity:.4;cursor:default}.fe-page-info{font-size:13px;color:var(--text-muted, #6b7280);white-space:nowrap;min-width:60px;text-align:center}.fe-error-card{background:#fef2f2;border:1px solid #fca5a5;border-radius:10px;padding:12px 16px}.fe-error-card pre{margin:0;font-size:12px;color:#b91c1c;overflow:auto}.fe-table-wrap{overflow-x:auto}.fe-table-wrap::-webkit-scrollbar{height:5px}.fe-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.fe-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1100px}.fe-table thead th{padding:9px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.fe-table thead th.th-right,.fe-table thead th.th-actions{text-align:right}.fe-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.fe-table tbody tr:hover{background:var(--bg, #fafafa)}.fe-table td{padding:8px 12px;vertical-align:middle;color:var(--text, #111827)}.td-bold{font-weight:700}.td-muted{color:var(--text-muted, #9ca3af)}.td-name{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.fe-status{display:inline-flex;align-items:center;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap}.fe-status--paid{background:#f0fdf4;color:#15803d;border:1px solid #86efac}.fe-status--pending{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.fe-status--partial{background:#eff6ff;color:#1d4ed8;border:1px solid #93c5fd}.fe-status--cancelled{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.fe-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.04em;background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5);border:1px solid #c7d2fe}.fe-chip--soft{background:#f3f4f6;color:#6b7280;border-color:var(--border, #e5e7eb)}.fe-empty{text-align:center!important;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:13px}.fe-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;width:min(860px,100%);max-height:90vh;height:fit-content;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}.fe-modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px 20px;overflow-y:auto;flex:1}.fe-modal-grid::-webkit-scrollbar{width:4px}.fe-modal-grid::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.fe-field-span{grid-column:1 / -1}.fe-modal-error{padding:10px 20px;background:#fef2f2;border-bottom:1px solid #fca5a5;font-size:13px;color:#dc2626;flex-shrink:0}@media(max-width:860px){.fe-modal-grid{grid-template-columns:1fr 1fr}.fe-filters{flex-direction:column;align-items:stretch}}@media(max-width:560px){.fe-modal-grid{grid-template-columns:1fr}}.cf-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.cf-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.cf-kpi-strip::-webkit-scrollbar{height:3px}.cf-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.cfkpi{display:flex;flex-direction:column;padding:10px 18px;flex-shrink:0}.cfkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.cfkpi-val{font-size:15px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;font-family:SFMono-Regular,Consolas,monospace}.cfkpi-pos{color:#16a34a}.cfkpi-neg{color:#dc2626}.cfkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.cf-mode-toggle{display:flex;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);border-radius:20px;padding:3px;gap:2px;flex-shrink:0}.cf-mode-btn{border:none;background:transparent;border-radius:16px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.cf-mode-btn:hover{background:#ffffffb3;color:var(--text, #374151)}.cf-mode-btn--active{background:var(--text, #111827);color:#fff;box-shadow:0 2px 6px #02061726}.cf-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:12px}.cf-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.cf-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.cf-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.cf-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.cf-date-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.cf-date-label{font-size:12px;color:var(--text-muted, #6b7280);font-weight:600}.cf-date-input{height:34px;font-size:13px;padding:0 10px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.cf-date-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.cf-error{padding:10px 14px;border-radius:8px;background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;font-size:13px;font-weight:600}.cf-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.cf-table-wrap{overflow-x:auto}.cf-table-wrap::-webkit-scrollbar{height:5px}.cf-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:3px}.cf-table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}.cf-table thead th{padding:9px 14px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);position:sticky;top:0;z-index:1;white-space:nowrap}.cf-table thead th.th-money{text-align:right}.cf-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.cf-table tbody tr:hover:not(.tr-negative){background:var(--bg, #fafafa)}.cf-table tbody tr.tr-negative td{background:#dc262606}.cf-table td{padding:8px 14px;vertical-align:middle;color:var(--text, #111827)}.cf-table tfoot td{padding:10px 14px;border-top:2px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);font-weight:700;font-size:13px}.tf-label{color:var(--text, #374151);font-weight:700}.th-date,.td-date{white-space:nowrap;width:160px}.td-mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px;font-variant-numeric:tabular-nums}.td-saldo{font-weight:800}.cf-pos{color:#16a34a}.cf-neg{color:#dc2626}.cf-empty{text-align:center!important;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:13px}.cf-ajuste-wrap{display:flex;justify-content:flex-end;align-items:center;gap:6px}.cf-ajuste-input{width:130px;height:32px;text-align:right;padding:0 10px;font-size:12px;font-family:SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;transition:border-color .15s,box-shadow .15s}.cf-ajuste-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.cf-ajuste-input:disabled{opacity:.5;cursor:not-allowed}.cf-ajuste-input.cf-neg{color:#dc2626;font-weight:600}.cf-ajuste-input.cf-pos{color:#16a34a;font-weight:600}.cf-saving{font-size:11px;color:var(--text-muted, #9ca3af);font-weight:700}.cf-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;width:min(480px,100%);height:fit-content;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}.modal-header-row h4{margin:0;font-size:15px;font-weight:700;color:var(--text, #111827)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border, #e5e7eb)}.cf-modal-body{display:flex;flex-direction:column;gap:14px;padding:16px 20px 4px}.cf-modal-field{display:flex;flex-direction:column;gap:5px}.cf-modal-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af)}.cf-modal-input{height:36px;font-size:13px;padding:0 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none}.cf-modal-input:disabled{opacity:.45;background:var(--bg, #f3f4f6)}.cf-modal-hint{margin:0;font-size:12px;color:var(--text-muted, #9ca3af);line-height:1.4}.cf-money-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--border, #d1d5db);border-radius:7px;padding:0 12px;background:var(--surface, #fff);height:38px;transition:border-color .15s,box-shadow .15s}.cf-money-wrap:focus-within{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.cf-money-prefix{font-size:13px;font-weight:700;color:var(--text-muted, #9ca3af);flex-shrink:0}.cf-money-input{border:none;outline:none;flex:1;font-size:14px;font-weight:700;color:var(--text, #111827);background:transparent;font-family:SFMono-Regular,Consolas,monospace}@media(max-width:760px){.cf-page-header{flex-direction:column;align-items:flex-start}.cfkpi{padding:8px 12px}.cfkpi-val{font-size:13px}}.ind-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.ind-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.ind-kpi-strip::-webkit-scrollbar{height:3px}.ind-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.inkpi{display:flex;flex-direction:column;padding:10px 18px;flex-shrink:0}.inkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.inkpi-val{font-size:16px;font-weight:800;color:var(--text, #111827);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.inkpi-primary{color:#7c3aed;font-size:13px}.inkpi-ok{color:#16a34a}.inkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.ind-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:12px}.btn{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn-danger-soft{border-color:#fca5a5;background:#fef2f2;color:#dc2626}.btn-danger-soft:hover:not(:disabled){background:#dc2626;color:#fff;border-color:#dc2626}.btn-sm{font-size:12px;padding:4px 10px;border-radius:5px}.btn-save{height:34px;padding:0 16px;font-size:13px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.ind-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.ind-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.ind-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.ind-error{padding:10px 14px;border-radius:8px;background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;font-size:13px}.ind-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.ind-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa)}.ind-card-head--row{align-items:flex-start;flex-wrap:wrap}.ind-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.ind-card-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.ind-selectors{display:flex;gap:14px;align-items:flex-end;padding:14px 16px;flex-wrap:wrap}.ind-field-group{display:flex;flex-direction:column;gap:4px}.ind-field-wide{flex:1 1 240px;min-width:200px}.ind-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af)}.ind-req{color:#ef4444;margin-left:2px}.ind-input{height:36px;font-size:13px;padding:0 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;min-width:130px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.ind-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.ind-input-sm{min-width:0}.ind-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;text-align:center;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px}.ind-empty-icon{font-size:40px;opacity:.4}.ind-empty-title{font-size:16px;font-weight:700;color:var(--text, #111827)}.ind-empty p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.ind-panel-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ind-panel-chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;background:var(--primary-soft, #eef2ff);color:var(--primary, #4f46e5);border:1px solid #c7d2fe}.ind-panel-chip--soft{background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280);border-color:var(--border, #e5e7eb)}.ind-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:900px){.ind-cards-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.ind-cards-grid{grid-template-columns:1fr}}.ind-kpi-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px;position:relative;overflow:hidden}.ind-kpi-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;border-radius:10px 0 0 10px;background:var(--border, #d1d5db)}.ind-kpi-card--good:before{background:#22c55e}.ind-kpi-card--warn:before{background:#f59e0b}.ind-kpi-card--bad:before{background:#ef4444}.ind-kpi-name{font-size:12px;font-weight:700;color:var(--text, #111827);margin-bottom:8px}.ind-kpi-value{font-size:20px;font-weight:800;color:var(--text, #111827);font-family:SFMono-Regular,Consolas,monospace}.ind-kpi-meta{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:4px}.ind-chart-filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.ind-chart-body{padding:14px}.ind-loading-box{padding:24px;border-radius:8px;text-align:center;background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);font-size:13px;color:var(--text-muted, #9ca3af)}.ind-table-wrap{overflow-x:auto}.ind-table{width:100%;border-collapse:collapse;font-size:13px;min-width:400px}.ind-table thead th{padding:9px 14px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.ind-table thead th.th-right{text-align:right}.ind-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.ind-table tbody tr:hover{background:var(--bg, #fafafa)}.ind-table td{padding:9px 14px;vertical-align:middle}.td-bold{font-weight:600;color:var(--text, #111827)}.td-dim{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:2px}.td-mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.td-right{text-align:right}.ind-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700}.ind-badge--good{background:#f0fdf4;color:#15803d;border:1px solid #86efac}.ind-badge--warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.ind-badge--bad{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.ind-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;width:min(640px,100%);height:fit-content;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}.ind-modal--lg{width:min(840px,100%);max-height:88vh}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border, #e5e7eb);flex-shrink:0}.ind-modal-body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;flex:1}.ind-modal-body::-webkit-scrollbar{width:4px}.ind-modal-body::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.ind-modal-error{padding:10px 20px;background:#fef2f2;border-bottom:1px solid #fca5a5;font-size:13px;color:#dc2626;flex-shrink:0}.ind-hint-box{padding:12px 14px;border-radius:8px;background:var(--bg, #f8f9fa);border:1px solid var(--border, #e5e7eb);font-size:13px;color:var(--text, #374151);line-height:1.5}.ind-hint-box strong{color:var(--text, #111827)}.ind-hint-box ul{margin:6px 0 0}.ind-hint-box li{margin-bottom:3px}.ind-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:520px){.ind-form-grid{grid-template-columns:1fr}}.ind-config-box{padding:12px 14px;border-radius:8px;border:1.5px dashed var(--border, #e5e7eb);background:var(--bg, #f8f9fa);display:flex;flex-direction:column;gap:12px}.ind-edit-block{border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:12px;background:var(--bg, #f8f9fa);display:flex;flex-direction:column;gap:10px}.ind-edit-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ind-edit-label{font-size:13px;font-weight:700;color:var(--text, #111827)}.ind-edit-unit{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:2px}.ind-edit-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}@media(max-width:760px){.ind-edit-row{grid-template-columns:1fr}}@media(max-width:760px){.inkpi{padding:8px 12px}.inkpi-val{font-size:14px}.ind-selectors{flex-direction:column;align-items:stretch}}.ap-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:var(--bg, #f5f6fa)}.ap-kpi-strip{display:flex;align-items:center;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb);padding:0 20px;min-height:56px;position:sticky;top:0;z-index:10;overflow-x:auto;gap:0}.ap-kpi-strip::-webkit-scrollbar{height:3px}.ap-kpi-strip::-webkit-scrollbar-thumb{background:var(--border, #d1d5db)}.apkpi{display:flex;flex-direction:column;padding:10px 20px;flex-shrink:0}.apkpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #9ca3af);white-space:nowrap}.apkpi-val{font-size:20px;font-weight:800;color:var(--text, #111827);line-height:1.2}.apkpi-green{color:#16a34a}.apkpi-blue{color:#2563eb}.apkpi-sep{width:1px;height:28px;background:var(--border, #e5e7eb);flex-shrink:0}.ap-strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:16px}.btn{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;white-space:nowrap;transition:background .12s}.btn:disabled{opacity:.5;cursor:default}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted, #6b7280)}.btn-ghost:hover:not(:disabled){background:var(--bg, #f5f6fa);color:var(--text, #374151);border-color:var(--border, #e5e7eb)}.btn-outline-soft{border-color:var(--primary, #6366f1);color:var(--primary, #4f46e5);background:var(--primary-soft, #eef2ff)}.btn-outline-soft:hover:not(:disabled){background:var(--primary, #6366f1);color:#fff}.btn-save{height:36px;padding:0 18px;font-size:13px;font-weight:700;border:1.5px solid var(--primary, #6366f1);border-radius:7px;background:var(--primary, #6366f1);color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.btn-save:hover:not(:disabled){opacity:.88}.btn-save:disabled{opacity:.5;cursor:default}.btn-row-edit{font-size:11px;padding:4px 10px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--surface, #fff);cursor:pointer;color:var(--text, #374151);transition:all .1s}.btn-row-edit:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1)}.btn-row-del{font-size:11px;width:26px;height:26px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:var(--text-muted, #9ca3af);transition:all .1s}.btn-row-del:hover{background:#fee2e2;color:#dc2626}.btn-row-del:disabled{opacity:.4;cursor:default}.ap-body{display:flex;flex-direction:column;gap:16px;padding:20px 20px 40px}.ap-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.ap-page-header h2{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--text, #111827)}.ap-page-header p{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.ap-plan-badge{display:flex;align-items:center;gap:7px;background:var(--primary-soft, #eef2ff);border:1px solid #c7d2fe;border-radius:8px;padding:7px 14px;font-size:13px;color:#4338ca;font-weight:600;white-space:nowrap;flex-shrink:0}.ap-plan-badge--warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.ap-card{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.ap-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--bg, #f8f9fa);flex-wrap:wrap}.ap-card-head--row{align-items:flex-start}.ap-card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--text, #111827)}.ap-card-head p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.ap-card-body{padding:16px}.ap-search-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ap-search-wrap{position:relative}.ap-search-input{height:34px;font-size:13px;padding:0 32px 0 12px;min-width:260px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.ap-search-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.ap-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:4px;border:1px solid var(--border, #e5e7eb);background:var(--bg, #f5f6fa);color:var(--text-muted, #9ca3af);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center}.ap-search-clear:hover{background:var(--border, #e5e7eb);color:var(--text, #374151)}.ap-count-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;background:var(--bg, #f3f4f6);color:var(--text-muted, #6b7280);border:1px solid var(--border, #e5e7eb);white-space:nowrap}.ap-table-wrap{overflow-x:auto;max-height:540px;overflow-y:auto}.ap-table-wrap::-webkit-scrollbar{width:4px;height:4px}.ap-table-wrap::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}.ap-table{width:100%;border-collapse:collapse;font-size:13px;min-width:740px}.ap-table thead th{position:sticky;top:0;z-index:2;padding:9px 12px;text-align:left;background:var(--bg, #f8f9fa);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);border-bottom:2px solid var(--border, #e5e7eb);white-space:nowrap}.ap-table thead th.th-actions{text-align:right}.ap-table tbody tr{border-bottom:1px solid var(--border, #f3f4f6);transition:background .1s}.ap-table tbody tr:hover:not(.tr-header){background:var(--bg, #fafafa)}.ap-table tbody tr.tr-header td{background:#f0fdf4}.ap-table tbody tr.tr-system td{box-shadow:inset 3px 0 #93c5fd}.ap-table td{padding:9px 12px;vertical-align:middle}.ap-name-wrap{display:inline-flex;align-items:center;gap:8px}.ap-indent{color:var(--text-muted, #d1d5db);font-family:monospace}.ap-name{font-weight:600;color:var(--text, #111827)}.chip{font-size:10px;padding:2px 8px;border-radius:20px;font-weight:700}.chip-green{background:#f0fdf4;color:#15803d;border:1px solid #86efac}.chip-blue{background:#eff6ff;color:#1d4ed8;border:1px solid #93c5fd}.ap-dre-tag{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);color:var(--text-muted, #6b7280);font-size:11px;white-space:nowrap}.ap-code{padding:3px 7px;border-radius:5px;font-size:11px;background:var(--bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);color:var(--text-muted, #6b7280);font-family:monospace}.td-muted{color:var(--text-muted, #9ca3af);font-size:12px}.td-actions{text-align:right;display:flex;gap:6px;justify-content:flex-end}.ap-empty{text-align:center!important;padding:40px!important;color:var(--text-muted, #9ca3af);font-size:13px}.ap-editor-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border, #f3f4f6);flex-wrap:wrap}.ap-editor-empty{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1.5px dashed var(--border, #e5e7eb);border-radius:10px;color:var(--text-muted, #9ca3af);font-size:13px}.ap-editor-empty-icon{font-size:18px;opacity:.5}.ap-editor-empty strong{color:var(--text, #374151)}.ap-warn{font-size:12px;color:#d97706;font-weight:600}.apf-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.apf-full{grid-column:1 / -1}@media(max-width:640px){.apf-grid{grid-template-columns:1fr}}.apf-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #9ca3af);margin-bottom:5px}.apf-req{color:#ef4444;margin-left:2px}.apf-hint-inline{font-size:10px;color:var(--text-muted, #9ca3af);font-weight:400;text-transform:none;letter-spacing:0;margin-left:4px}.apf-hint{margin:5px 0 0;font-size:11px;color:var(--text-muted, #9ca3af);line-height:1.4}.apf-input{width:100%;height:36px;font-size:13px;padding:0 11px;border:1px solid var(--border, #d1d5db);border-radius:7px;background:var(--surface, #fff);color:var(--text, #111827);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.apf-input:focus{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px var(--primary-soft, #eef2ff)}.apf-input:disabled{opacity:.45;background:var(--bg, #f3f4f6);cursor:not-allowed}.apf-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text, #374151);cursor:pointer}.apf-checkbox input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary, #6366f1);cursor:pointer}.ap-result{position:fixed;right:16px;bottom:16px;width:min(480px,calc(100vw - 32px));background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 12px 40px #02061726;padding:12px 14px;z-index:9999}.ap-result pre{margin:0;max-height:200px;overflow:auto;font-size:11px;color:var(--text, #374151)}.ap-result-close{float:right;border:none;background:transparent;font-size:13px;cursor:pointer;color:var(--text-muted, #9ca3af);padding:2px 4px;border-radius:4px}.ap-result-close:hover{background:var(--bg, #f5f6fa);color:var(--text, #374151)}.ap-result--ok{border-color:#86efac}.ap-result--error{border-color:#fca5a5}.modal-backdrop{position:fixed;inset:0;background:#0f172a4d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;z-index:9999}.ap-modal{background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;box-shadow:0 20px 60px #0206172e;width:min(720px,100%);height:fit-content;display:flex;flex-direction:column;overflow:hidden;animation:modalIn .16s ease-out}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--border, #e5e7eb)}.modal-header-row h4{margin:0;font-size:15px;font-weight:700}.modal-header-row p{margin:3px 0 0;font-size:12px;color:var(--text-muted, #6b7280)}.modal-close-btn{background:none;border:none;font-size:16px;cursor:pointer;color:var(--text-muted, #9ca3af);padding:2px 5px;border-radius:4px}.modal-close-btn:hover{background:var(--bg, #f5f6fa);color:var(--text, #374151)}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border, #e5e7eb);flex-wrap:wrap}.ap-modal-body{padding:16px 20px;overflow-y:auto;max-height:60vh}.ap-modal-body::-webkit-scrollbar{width:4px}.ap-modal-body::-webkit-scrollbar-thumb{background:var(--border, #d1d5db);border-radius:2px}@media(max-width:760px){.apkpi{padding:8px 12px}.apkpi-val{font-size:16px}.ap-search-input{min-width:180px}}:root{--bg: #f5f6fa;--surface: #ffffff;--border: #e5e7eb;--text: #111827;--text-muted: #6b7280;--primary: #6366f1;--primary-soft: #eef2ff;--success: #22c55e;--success-soft: #f0fdf4;--warning: #f59e0b;--danger: #ef4444;--danger-soft: #fef2f2;--danger-border:#fca5a5;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.08);--shadow-lg: 0 20px 60px rgba(2,6,23,.15)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app-loading{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.app-loading-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;box-shadow:var(--shadow-md);font-size:14px;color:var(--text-muted)}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--border);border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.topbar{position:sticky;top:0;z-index:100;height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:12px;box-shadow:var(--shadow-sm)}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.sidebar-toggle-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:background .12s,border-color .12s}.sidebar-toggle-btn:hover{background:var(--bg);border-color:var(--text-muted)}.hb{width:16px;display:grid;gap:3.5px}.hb span{height:2px;background:var(--text-muted);border-radius:2px;display:block}.brand-logo{width:32px;height:32px;object-fit:contain;border-radius:8px;border:1px solid var(--border);flex-shrink:0}.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.brand-text strong{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text small{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.user-name{font-size:13px;font-weight:700;color:var(--text)}.user-email{font-size:11px;color:var(--text-muted)}.topbar-btn{height:32px;padding:0 14px;font-size:13px;font-weight:600;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.topbar-btn:hover{background:var(--bg);color:var(--text)}.app-layout{display:flex;flex:1;min-height:0}.sidebar{width:220px;min-width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;transition:width .2s ease,min-width .2s ease;position:sticky;top:56px;height:calc(100vh - 56px)}.sidebar--collapsed{width:60px;min-width:60px}.sidebar::-webkit-scrollbar{width:3px}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sidebar-nav{display:flex;flex-direction:column;padding:12px 8px;gap:4px;flex:1}.nav-section{margin-bottom:8px}.nav-section-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:6px 10px 4px;white-space:nowrap;overflow:hidden}.sidebar--collapsed .nav-section-title{opacity:0;height:0;padding:0;overflow:hidden}.nav-link{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;border-radius:8px;background:none;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s,color .12s;white-space:nowrap;overflow:hidden}.nav-link:hover{background:var(--bg);color:var(--text)}.nav-link--active{background:var(--primary-soft);color:var(--primary);font-weight:700}.nav-icon{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg);color:inherit}.nav-icon svg{width:16px;height:16px;flex-shrink:0}.nav-link--active .nav-icon{background:var(--primary-soft);color:var(--primary)}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar--collapsed .nav-label{display:none}.sidebar--collapsed .nav-link{justify-content:center;padding:8px}.sidebar--collapsed .nav-icon{background:none}.sidebar-footer{display:flex;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid var(--border);flex-shrink:0}.session-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px #22c55e26;flex-shrink:0}.session-text{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden}.sidebar--collapsed .session-text{display:none}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.mobile-tabs{display:none;gap:8px;padding:10px 12px;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border)}.mobile-tabs::-webkit-scrollbar{height:3px}.mobile-tab{flex-shrink:0;padding:6px 14px;font-size:12px;font-weight:600;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.mobile-tab:hover{background:var(--bg);color:var(--text)}.mobile-tab--active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary);font-weight:700}.page-area{flex:1;min-width:0;overflow-y:auto}@media(max-width:900px){.sidebar{display:none}.mobile-tabs{display:flex}.user-info,.brand-text small{display:none}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#f3f4f6;color:#111827}button{font-family:inherit}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}
