.pfx-demo{--bg-primary:#fff;--bg-tertiary:#f9fafb;--bg-card:#fff;--bg-hover:#f9fafb;--bg-input:#f9fafb;--accent-blue:#2563eb;--accent-blue-light:#2563eb1a;--accent-purple:#7c3aed;--accent-purple-light:#7c3aed1a;--accent-emerald:#059669;--accent-emerald-light:#0596691a;--accent-red:#dc2626;--accent-red-light:#dc262614;--accent-amber:#d97706;--accent-amber-light:#d977061a;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border-primary:#e2e8f0;--sidebar-bg:#fff;--header-bg:#ffffffeb;--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:64px;--radius-sm:4px;--radius-md:6px;--card-shadow:#0e3f7e0f 0px 0px 0px 1px, #2a334608 0px 1px 1px -.5px, #2a33460a 0px 2px 2px -1px, #2a33460a 0px 3px 3px -1.5px, #2a334608 0px 5px 5px -2.5px, #2a334608 0px 10px 10px -5px, #2a334608 0px 24px 24px -8px;--grid-line:#eef2f7;color:var(--text-primary);font-family:var(--font-inter), "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}.pfx-demo *,.pfx-demo :before,.pfx-demo :after{box-sizing:border-box}.pfx-app{background:var(--bg-primary);isolation:isolate;border-radius:10px;height:760px;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0f,0 24px 60px -12px #0f172a38}.pfx-sidebar{width:var(--sidebar-collapsed);background:var(--sidebar-bg);border-right:1px solid var(--border-primary);z-index:100;flex-direction:column;transition:width .25s,box-shadow .25s;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.pfx-sidebar:hover,.pfx-sidebar:focus-within{width:var(--sidebar-width);box-shadow:4px 0 24px #00000014}.pfx-brand{height:var(--header-height);border-bottom:1px solid var(--border-primary);flex-shrink:0;align-items:center;gap:10px;padding:16px;transition:padding .25s;display:flex}.pfx-sidebar:hover .pfx-brand,.pfx-sidebar:focus-within .pfx-brand{padding:16px 18px}.pfx-brand img{border-radius:8px;flex-shrink:0}.pfx-brand-text{white-space:nowrap;opacity:0;transition:opacity .18s;overflow:hidden}.pfx-sidebar:hover .pfx-brand-text,.pfx-sidebar:focus-within .pfx-brand-text{opacity:1}.pfx-brand-text strong{letter-spacing:-.02em;color:var(--text-primary);font-size:.92rem;font-weight:600;line-height:1.2;display:block}.pfx-brand-text span{color:var(--text-muted);opacity:.7;font-size:.65rem}.pfx-nav{scrollbar-width:thin;flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow:hidden auto}.pfx-sidebar:hover .pfx-nav,.pfx-sidebar:focus-within .pfx-nav{padding:16px 12px}.pfx-nav::-webkit-scrollbar{width:6px}.pfx-nav::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.pfx-nav-section{color:var(--text-muted);white-space:nowrap;padding:16px 12px 6px;font-size:.68rem;font-weight:500;display:none}.pfx-sidebar:hover .pfx-nav-section,.pfx-sidebar:focus-within .pfx-nav-section{display:block}.pfx-link{border-radius:var(--radius-md);color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:0;width:100%;padding:10px;font-family:inherit;font-size:.9rem;font-weight:500;transition:background .15s,color .15s,padding .25s,gap .25s;display:flex;position:relative}.pfx-sidebar:hover .pfx-link,.pfx-sidebar:focus-within .pfx-link{justify-content:flex-start;gap:12px;padding:10px 14px}.pfx-link:hover{background:var(--bg-hover);color:var(--text-primary)}.pfx-link:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px}.pfx-link.is-active{background:var(--bg-hover);color:var(--text-primary)}.pfx-link.is-active:before{content:"";background:var(--text-primary);border-radius:0 2px 2px 0;width:2px;height:16px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.pfx-link>svg,.pfx-link>img{opacity:.85;flex-shrink:0;width:20px;height:20px}.pfx-link>img{object-fit:contain}.pfx-link>img.wide,.pfx-legend-ico.wide{width:30px}.pfx-link.is-active>svg{opacity:1}.pfx-link-label{white-space:nowrap;opacity:0;width:0;transition:opacity .18s;overflow:hidden}.pfx-sidebar:hover .pfx-link-label,.pfx-sidebar:focus-within .pfx-link-label{opacity:1;width:auto}.pfx-sidebar-foot{border-top:1px solid var(--border-primary);flex-shrink:0;padding:8px;transition:padding .25s}.pfx-sidebar:hover .pfx-sidebar-foot,.pfx-sidebar:focus-within .pfx-sidebar-foot{padding:12px}.pfx-header{top:0;left:var(--sidebar-collapsed);height:var(--header-height);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-primary);z-index:90;justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:absolute;right:0}.pfx-header-title{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:600}.pfx-header-sub{color:var(--text-muted);margin:0;font-size:.82rem}.pfx-header-right{align-items:center;gap:12px;display:flex}.pfx-search{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:8px;padding:8px 14px;font-size:.85rem;display:flex}.pfx-kbd{color:var(--text-muted);border:1px solid var(--border-primary);border-radius:4px;padding:1px 5px;font-size:.7rem;font-weight:500}.pfx-icon-btn{border-radius:var(--radius-md);width:34px;height:34px;color:var(--text-secondary);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.pfx-dot{background:var(--accent-red);border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:8px}.pfx-user{border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--bg-card);align-items:center;gap:8px;padding:5px 10px 5px 5px;display:flex}.pfx-avatar{background:var(--bg-tertiary);border:1px solid var(--border-primary);width:26px;height:26px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.pfx-user-name{color:var(--text-primary);font-size:.82rem;font-weight:600}.pfx-plan{letter-spacing:.02em;color:#f59e0b;background:#f59e0b26;border-radius:4px;padding:2px 6px;font-size:.62rem;font-weight:600}.pfx-main{inset:var(--header-height) 0 0 var(--sidebar-collapsed);background:var(--bg-primary);padding:20px 28px 32px;position:absolute;overflow:hidden auto}.pfx-main::-webkit-scrollbar{width:8px}.pfx-main::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:4px}.pfx-tabs{border-bottom:1px solid var(--border-primary);gap:4px;margin-bottom:18px;display:flex}.pfx-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-family:inherit;font-size:.86rem;font-weight:500}.pfx-tab:hover{color:var(--text-primary)}.pfx-tab.is-active{color:var(--accent-purple);border-bottom-color:var(--accent-purple)}.pfx-periodbar{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:18px;display:flex}.pfx-cal{color:var(--text-muted);margin-right:6px;display:flex}.pfx-period{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;padding:5px 11px;font-family:inherit;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.pfx-period:hover{background:var(--bg-hover);color:var(--text-primary)}.pfx-period:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}.pfx-period.is-active{color:#6366f1;background:#6366f11f}.pfx-sep{background:var(--border-primary);width:1px;height:20px;margin:0 10px}.pfx-datefield{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);font-variant-numeric:tabular-nums;padding:5px 10px;font-size:.78rem}.pfx-compare{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;align-items:center;gap:6px;margin-left:8px;padding:5px 11px;font-family:inherit;font-size:.78rem;font-weight:500;display:inline-flex}.pfx-compare:hover{color:var(--text-primary)}.pfx-compare:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}.pfx-compare.is-on{color:#6366f1;background:#6366f114;border-color:#6366f1}.pfx-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.pfx-stats.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.pfx-stat{background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--card-shadow);align-items:flex-start;gap:14px;min-width:0;padding:16px 20px;display:flex}.pfx-stat-ico{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.pfx-stat-body{flex:1;min-width:0}.pfx-stat-label{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;margin-bottom:4px;font-size:.78rem;font-weight:500;display:flex;overflow:hidden}.pfx-stat-value{letter-spacing:-.01em;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:1.3rem;font-weight:600;line-height:1.2;overflow:hidden}.pfx-stat-foot{color:var(--text-muted);margin-top:4px;font-size:.72rem}.pfx-change{font-variant-numeric:tabular-nums;align-items:center;gap:4px;margin-top:5px;font-size:.75rem;font-weight:500;display:inline-flex}.pfx-change.up{color:var(--accent-emerald)}.pfx-change.down{color:var(--accent-red)}.pfx-seg{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:5px;margin-top:7px;padding:1px;display:inline-flex}.pfx-seg button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 8px;font-family:inherit;font-size:.68rem;font-weight:600;transition:background .15s,color .15s}.pfx-seg button:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}.pfx-seg button.is-on{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 2px #0f172a14}.pfx-grid2{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.pfx-card{background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--card-shadow);min-width:0;padding:20px}.pfx-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.pfx-card-title{color:var(--text-primary);margin:0;font-size:.9rem;font-weight:500}.pfx-chart{position:relative}.pfx-chart svg{width:100%;height:auto;display:block;overflow:visible}.pfx-axis{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.pfx-gridline{stroke:var(--grid-line);stroke-width:1px;stroke-dasharray:3 3}.pfx-bar{transition:opacity .15s}.pfx-bar:hover{opacity:.78}.pfx-slice{transition:opacity .15s}.pfx-slice:hover{opacity:.8}.pfx-tip{pointer-events:none;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-primary);white-space:nowrap;z-index:5;font-variant-numeric:tabular-nums;border-radius:6px;padding:7px 10px;font-size:.75rem;position:absolute;transform:translate(-50%,-100%);box-shadow:0 6px 20px #0f172a24}.pfx-tip-row{align-items:center;gap:6px;display:flex}.pfx-tip-head{color:var(--text-muted);margin-bottom:4px}.pfx-swatch{border-radius:2px;flex-shrink:0;width:8px;height:8px}.pfx-donut-wrap{align-items:center;gap:22px;display:flex}.pfx-donut{flex-shrink:0;position:relative}.pfx-donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pfx-donut-center strong{color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.25rem;font-weight:600}.pfx-donut-center span{color:var(--text-muted);font-size:.7rem}.pfx-legend{flex-direction:column;gap:9px;min-width:132px;display:flex}.pfx-legend-item{color:var(--text-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:.78rem;display:flex}.pfx-legend-item b{color:var(--text-primary);margin-left:auto;font-weight:600}.pfx-legend-ico{object-fit:contain;flex-shrink:0;width:15px;height:15px}.pfx-chip{border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.pfx-chip.warn{color:var(--accent-amber);background:var(--accent-amber-light)}.pfx-chip.ok{color:var(--accent-emerald);background:var(--accent-emerald-light)}.pfx-scene{animation:.32s ease-out both pfx-in}@keyframes pfx-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.pfx-skel-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.pfx-sk{background:linear-gradient(90deg,#eef2f7 0%,#f8fafc 40%,#eef2f7 80%) 0 0/800px 100%;border-radius:4px;animation:1.8s ease-in-out infinite pfx-shimmer;display:block}@keyframes pfx-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.pfx-skel-rows{flex-direction:column;gap:14px;display:flex}.pfx-skel-rows>div{justify-content:space-between;gap:20px;display:flex}.pfx-statusbar{background:var(--bg-card);border:1px solid var(--border-primary);color:var(--text-muted);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:10px 16px;font-size:.78rem;display:flex}.pfx-live{background:var(--accent-emerald);border-radius:50%;width:10px;height:10px;animation:1.8s ease-in-out infinite pfx-pulse}@keyframes pfx-pulse{0%,to{opacity:1;box-shadow:0 0 #05966959}50%{opacity:.75;box-shadow:0 0 0 6px #05966900}}.pfx-progress{background:#6366f126;border-radius:4px;width:120px;height:8px;overflow:hidden}.pfx-progress span{background:#6366f1;border-radius:4px;height:100%;display:block}.pfx-tbl-wrap{overflow-x:auto}.pfx-pnl{border-collapse:collapse;width:100%;font-size:.84rem}.pfx-pnl td{border-bottom:1px solid var(--border-primary);color:var(--text-secondary);padding:8px 4px}.pfx-pnl td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap}.pfx-pnl tr:last-child td{border-bottom:0}.pfx-pnl tr.sub td:first-child{padding-left:16px}.pfx-pnl tr.neg td:last-child{color:var(--accent-red)}.pfx-pnl tr.total td{color:var(--text-primary);border-top:1px solid var(--border-primary);border-bottom:0;padding-top:10px;font-weight:600}.pfx-pnl tr.final td{color:var(--text-primary);border-top:2px solid var(--border-primary);border-bottom:0;padding-top:12px;font-size:.95rem;font-weight:700}.pfx-pnl tr.final td:last-child{color:var(--accent-emerald)}.pfx-table{border-collapse:collapse;width:100%;font-size:.83rem}.pfx-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:0 10px 10px 0;font-size:.74rem;font-weight:500}.pfx-table td{border-bottom:1px solid var(--border-primary);color:var(--text-secondary);white-space:nowrap;padding:10px 10px 10px 0}.pfx-table td:first-child{color:var(--text-primary);font-weight:500}.pfx-table th.num,.pfx-table td.num{text-align:right;padding-right:0}.pfx-table td.num{font-variant-numeric:tabular-nums;color:var(--text-primary)}.pfx-table tbody tr:last-child td{border-bottom:0}.pfx-table tbody tr:hover td{background:var(--bg-hover)}.pfx-pill{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-block}.pfx-pill.ok{color:var(--accent-emerald);background:var(--accent-emerald-light)}.pfx-pill.info{color:var(--accent-blue);background:var(--accent-blue-light)}.pfx-pill.warn{color:var(--accent-amber);background:var(--accent-amber-light)}.pfx-pill.bad{color:var(--accent-red);background:var(--accent-red-light)}.pfx-subtabs{flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.pfx-subtab{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;padding:5px 12px;font-family:inherit;font-size:.79rem;font-weight:500}.pfx-subtab.is-active{color:#6366f1;background:#6366f11f;border-color:#6366f14d}.pfx-demo-note{text-align:center;color:#94a3b8;margin:12px 0 0;font-size:.75rem}@media (max-width:1100px){.pfx-stats,.pfx-stats.cols-3,.pfx-skel-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.pfx-grid2{grid-template-columns:1fr}.pfx-app{height:700px}}@media (max-width:720px){.pfx-main{padding:16px 14px 28px}.pfx-header{padding:0 14px}.pfx-search,.pfx-user-meta{display:none}.pfx-stats,.pfx-stats.cols-3,.pfx-skel-stats{grid-template-columns:1fr}.pfx-app{height:620px}.pfx-donut-wrap{flex-direction:column;align-items:stretch}.pfx-donut{align-self:center}}@media (prefers-reduced-motion:reduce){.pfx-demo *,.pfx-demo :before,.pfx-demo :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
