.pnl-page{background-color:var(--bg-soft-blue,#f0fdfa);width:100%;min-height:100vh;font-family:var(--font-sans,"Be Vietnam Pro", sans-serif);box-sizing:border-box;padding:8px 16px 48px}.pnl-content-container{max-width:1360px;margin:0 auto}.pnl-topbar-wrapper{border-radius:var(--radius-lg,24px);border:1px solid var(--border-subtle,#e5edf8);box-shadow:var(--shadow-sm,0 2px 8px #0f766e0a);background:#fff;margin-bottom:24px;padding:20px 24px}.pnl-topbar-container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.pnl-topbar-title-group{align-items:center;gap:14px;display:flex}.pnl-topbar-icon{border-radius:var(--radius-sm,14px);background:var(--blue-primary,#0f766e);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex;box-shadow:0 4px 14px #0f766e47}.pnl-topbar-text h1{color:var(--text-main,#111827);letter-spacing:-.02em;align-items:center;gap:10px;margin:0;font-size:1.45rem;font-weight:800;display:flex}.pnl-topbar-text p{color:var(--text-muted,#4b5563);margin:4px 0 0;font-size:.8rem;font-weight:500}.pnl-tag-badge{border-radius:var(--radius-pill,9999px);background:var(--blue-subtle,#ccfbf1);color:var(--blue-primary,#0f766e);text-transform:uppercase;letter-spacing:.03em;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.pnl-segmented-tabs{border-radius:var(--radius-pill,9999px);border:1px solid var(--border-subtle,#e5edf8);background:#f1f5f9;gap:4px;padding:4px;display:inline-flex}.pnl-segmented-tab-btn{border-radius:var(--radius-pill,9999px);cursor:pointer;color:var(--text-muted,#4b5563);white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:7px 16px;font-size:.8rem;font-weight:600;transition:all .18s;display:inline-flex}.pnl-segmented-tab-btn:hover{color:var(--text-main,#111827)}.pnl-segmented-tab-btn.active{color:var(--blue-primary,#0f766e);background:#fff;box-shadow:0 2px 8px #00000014}.pnl-filter-bar{border-radius:var(--radius-lg,24px);border:1px solid var(--border-subtle,#e5edf8);box-shadow:var(--shadow-sm,0 2px 8px #0f766e0a);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:16px 22px;display:flex}.pnl-filter-left{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pnl-branch-select-wrapper{min-width:250px;position:relative}.pnl-branch-select{border:1px solid var(--border-subtle,#e5edf8);border-radius:var(--radius-pill,9999px);width:100%;color:var(--text-main,#111827);appearance:none;cursor:pointer;box-sizing:border-box;background-color:#f8fafc;outline:none;padding:9px 36px 9px 40px;font-size:.82rem;font-weight:600;transition:border-color .2s,background-color .2s}.pnl-branch-select:hover{border-color:var(--blue-border,#99f6e4);background-color:#f1f5f9}.pnl-branch-select:focus{border-color:var(--blue-primary,#0f766e);background-color:#fff}.pnl-branch-icon-left{color:var(--blue-primary,#0f766e);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.pnl-branch-icon-right{color:var(--text-faint,#9ca3af);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.pnl-preset-group{border-radius:var(--radius-pill,9999px);border:1px solid var(--border-subtle,#e5edf8);background:#f1f5f9;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.pnl-preset-btn{border-radius:var(--radius-pill,9999px);color:var(--text-muted,#4b5563);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:6px 14px;font-size:.76rem;font-weight:600;transition:all .15s}.pnl-preset-btn:hover{color:var(--text-main,#111827);background:#e2e8f0}.pnl-preset-btn.active{background:var(--blue-primary,#0f766e);color:#fff;box-shadow:0 2px 6px #0f766e47}.pnl-custom-date-box{background:var(--blue-subtle,#ccfbf1);border:1px solid var(--blue-border,#99f6e4);border-radius:var(--radius-pill,9999px);color:var(--text-main,#111827);align-items:center;gap:8px;padding:5px 14px;font-size:.78rem;font-weight:500;display:inline-flex}.pnl-custom-date-input{border:1px solid #cbd5e1;border-radius:6px;outline:none;padding:3px 6px;font-family:inherit;font-size:.75rem}.pnl-filter-right{align-items:center;gap:10px;display:flex}.btn-primary-pill{background:var(--blue-primary,#0f766e);color:#fff;border-radius:var(--radius-pill,9999px);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:8px;padding:9px 20px;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 4px 14px #0f766e47}.btn-primary-pill:hover{background:var(--blue-hover,#115e59);transform:translateY(-1px);box-shadow:0 6px 18px #0f766e59}.btn-secondary-pill{color:var(--text-muted,#4b5563);border-radius:var(--radius-pill,9999px);cursor:pointer;border:1px solid var(--border-subtle,#e5edf8);white-space:nowrap;background:#fff;align-items:center;gap:6px;padding:8px 16px;font-size:.82rem;font-weight:600;transition:all .18s;display:inline-flex}.btn-secondary-pill:hover{background:var(--blue-subtle,#ccfbf1);color:var(--blue-primary,#0f766e);border-color:var(--blue-border,#99f6e4)}.pnl-kpi-grid{grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:24px;display:grid}@media (width<=1280px){.pnl-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.pnl-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.pnl-kpi-grid{grid-template-columns:1fr}}.pnl-kpi-card{border-radius:var(--radius-lg,24px);border:1px solid var(--border-subtle,#e5edf8);box-shadow:var(--shadow-card,0 10px 30px #0f766e0f);box-sizing:border-box;background:#fff;flex-direction:column;justify-content:space-between;min-height:125px;padding:18px;transition:transform .2s,box-shadow .2s;display:flex}.pnl-kpi-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px #0f766e1a}.pnl-kpi-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.pnl-kpi-title{color:var(--text-muted,#4b5563);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;font-weight:700;overflow:hidden}.pnl-kpi-icon{border-radius:var(--radius-sm,12px);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.pnl-icon-teal{background:var(--blue-subtle,#ccfbf1);color:var(--blue-primary,#0f766e)}.pnl-icon-sky{color:#0284c7;background:#e0f2fe}.pnl-icon-emerald{color:#059669;background:#d1fae5}.pnl-icon-amber{color:#d97706;background:#fef3c7}.pnl-icon-indigo{color:#4f46e5;background:#e0e7ff}.pnl-icon-slate{color:#475569;background:#f1f5f9}.pnl-kpi-value{color:var(--text-main,#111827);letter-spacing:-.02em;font-size:1.35rem;font-weight:800;line-height:1.2}.pnl-kpi-subtext{color:var(--text-faint,#9ca3af);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.72rem;font-weight:500;overflow:hidden}.pnl-kpi-footer{border-top:1px solid #f1f5f9;align-items:center;gap:6px;margin-top:10px;padding-top:8px;font-size:.72rem;display:flex}.pnl-growth-badge{border-radius:var(--radius-pill,9999px);align-items:center;gap:2px;padding:2px 7px;font-size:.7rem;font-weight:700;display:inline-flex}.pnl-growth-positive{color:#059669;background:#ecfdf5}.pnl-growth-negative{color:#dc2626;background:#fee2e2}.pnl-growth-neutral{color:#64748b;background:#f1f5f9}.pnl-charts-grid{grid-template-columns:7fr 5fr;gap:20px;margin-bottom:24px;display:grid}@media (width<=1024px){.pnl-charts-grid{grid-template-columns:1fr}}.pnl-chart-card{border-radius:var(--radius-lg,24px);border:1px solid var(--border-subtle,#e5edf8);box-shadow:var(--shadow-card,0 10px 30px #0f766e0f);box-sizing:border-box;background:#fff;flex-direction:column;justify-content:space-between;padding:22px;display:flex}.pnl-card-title-group{align-items:center;gap:12px;margin-bottom:16px;display:flex}.pnl-card-icon-badge{border-radius:var(--radius-sm,12px);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.pnl-card-title-group h3{color:var(--text-main,#111827);margin:0;font-size:.95rem;font-weight:800}.pnl-card-title-group p{color:var(--text-muted,#4b5563);margin:2px 0 0;font-size:.74rem}.pnl-chart-container{width:100%;height:290px;position:relative}.pnl-donut-container{width:100%;height:190px;margin:8px 0;position:relative}.pnl-donut-legend{border-top:1px solid #f1f5f9;flex-direction:column;gap:7px;max-height:120px;margin-top:12px;padding-top:12px;display:flex;overflow-y:auto}.pnl-legend-row{justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.pnl-legend-item-left{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;display:flex;overflow:hidden}.pnl-legend-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.pnl-top-products-wrapper{border-radius:var(--radius-lg,24px);border:1px solid var(--border-subtle,#e5edf8);box-shadow:var(--shadow-card,0 10px 30px #0f766e0f);background:#fff;margin-bottom:24px;padding:22px}.pnl-product-row{border-bottom:1px solid #f1f5f9;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:.8rem;transition:background-color .15s;display:flex}.pnl-product-row:hover{background-color:#f8fafc}.pnl-product-left{align-items:center;gap:12px;min-width:0;display:flex}.pnl-rank-badge{background:var(--blue-subtle,#ccfbf1);width:24px;height:24px;color:var(--blue-primary,#0f766e);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;display:flex}.pnl-product-name{color:var(--text-main,#111827);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.pnl-product-meta{color:var(--text-faint,#9ca3af);margin-top:2px;font-size:.72rem}.pnl-product-right{text-align:right;flex-shrink:0;margin-left:16px}.pnl-product-revenue{color:var(--text-main,#111827);font-weight:800}.pnl-product-profit{color:var(--blue-primary,#0f766e);font-size:.72rem;font-weight:600}.pnl-table-box{border-radius:var(--radius-lg,24px);border:1px solid var(--border-subtle,#e5edf8);box-shadow:var(--shadow-card,0 10px 30px #0f766e0f);background:#fff;margin-bottom:24px;overflow:hidden}.pnl-table-header-bar{border-bottom:1px solid var(--border-subtle,#e5edf8);background:#f8fafc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:18px 24px;display:flex}.pnl-table-element{border-collapse:collapse;text-align:left;width:100%}.pnl-th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted,#4b5563);border-bottom:1px solid var(--border-subtle,#e5edf8);background:#f1f5f9;padding:12px 18px;font-size:.74rem;font-weight:800}.pnl-td{color:var(--text-main,#111827);vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:11px 18px;font-size:.8rem}.pnl-row-hover:hover{background-color:#f8fafc}.pnl-row-header{border-bottom:1px solid var(--border-subtle,#e5edf8);background-color:#f1f5f9;font-weight:800}.pnl-row-total{background-color:var(--blue-subtle,#ccfbf1);border-bottom:2px solid var(--blue-border,#99f6e4);font-weight:800}.pnl-row-total .pnl-td{color:var(--blue-primary,#0f766e);font-size:.84rem}.pnl-progress-bar-bg{border-radius:var(--radius-pill,9999px);background-color:#e2e8f0;width:70px;height:6px;overflow:hidden}.pnl-progress-bar-fill{border-radius:var(--radius-pill,9999px);background-color:var(--blue-primary,#0f766e);height:100%}.pnl-modal-backdrop{z-index:999;-webkit-backdrop-filter:blur(4px);background-color:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.pnl-modal-window{border-radius:var(--radius-card,24px);border:1px solid var(--border-light,#edf2f9);background:#fff;flex-direction:column;width:100%;max-width:900px;max-height:90vh;animation:.2s cubic-bezier(.16,1,.3,1) pnlModalPopIn;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #0f766e40}@keyframes pnlModalPopIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.pnl-modal-header{border-bottom:1px solid var(--border-subtle,#e5edf8);background:#f8fafc;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.pnl-modal-close-btn{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.pnl-modal-close-btn:hover{color:var(--text-main,#111827);background:#e2e8f0}.pnl-modal-tabs-bar{border-bottom:1px solid var(--border-subtle,#e5edf8);background:#fff;gap:16px;padding:0 24px;display:flex}.pnl-modal-tab-btn{cursor:pointer;color:var(--text-muted,#64748b);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:12px 6px;font-size:.8rem;font-weight:700;transition:all .15s;display:inline-flex}.pnl-modal-tab-btn.active{border-bottom-color:var(--blue-primary,#0f766e);color:var(--blue-primary,#0f766e)}.pnl-modal-body{background:#fafafa;flex:1;padding:24px;overflow-y:auto}.pnl-print-sheet{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;max-width:780px;margin:0 auto;padding:32px;font-size:.78rem;box-shadow:0 1px 3px #0000000f}.pnl-print-header{border-bottom:2px solid #0f172a;margin-bottom:24px;padding-bottom:16px}.pnl-print-header-top{justify-content:space-between;align-items:flex-start;display:flex}.pnl-print-brand{text-transform:uppercase;color:var(--blue-primary,#0f766e);letter-spacing:.05em;font-size:1rem;font-weight:800}.pnl-print-title{text-align:center;margin-top:16px}.pnl-print-title h1{text-transform:uppercase;color:#0f172a;margin:0;font-size:1.15rem;font-weight:900}.pnl-print-kpi-summary{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;padding:12px;display:grid}.pnl-print-table{border-collapse:collapse;width:100%;margin-bottom:28px;font-size:.75rem}.pnl-print-table th,.pnl-print-table td{border:1px solid #cbd5e1;padding:6px 10px}.pnl-print-table th{background:#f1f5f9;font-weight:800}.pnl-print-signatures{text-align:center;border-top:1px solid #e2e8f0;grid-template-columns:repeat(3,1fr);margin-top:28px;padding-top:16px;font-size:.75rem;display:grid}.pnl-modal-footer{border-top:1px solid var(--border-subtle,#e5edf8);background:#fff;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.pnl-excel-card{border:1px solid var(--border-subtle,#e5edf8);text-align:center;background:#fff;border-radius:16px;max-width:520px;margin:0 auto;padding:32px 24px}
