.rpt-container{max-width:1400px;margin:0 auto;padding:2rem 1rem}.rpt-header{border-radius:16px;padding:1.5rem 2rem;color:#fff;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.rpt-header h1{margin:0;font-size:1.5rem;font-weight:700}.rpt-header-sub{font-size:.85rem;opacity:.85;margin-top:.25rem}.rpt-nav{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.rpt-nav-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border-radius:10px;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .15s;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.25)}.rpt-nav-btn:hover{background:rgba(255,255,255,.3);color:#fff;transform:translateY(-1px)}.rpt-nav-primary{background:#fff!important;color:inherit!important;border-color:#fff!important;box-shadow:0 2px 8px rgba(0,0,0,.15)}.rpt-nav-primary:hover{opacity:.92;transform:translateY(-1px)}.rpt-filter{background:#fff;border-radius:12px;padding:1rem 1.5rem;box-shadow:0 1px 6px rgba(0,0,0,.06);margin-bottom:1.5rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.rpt-filter label{font-size:.82rem;font-weight:600;color:#6b7280;margin:0}.rpt-filter input[type="date"],.rpt-filter select{border:1px solid #e5e7eb;border-radius:8px;padding:.4rem .6rem;font-size:.85rem}.rpt-filter input:focus,.rpt-filter select:focus{outline:0;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.rpt-filter-btn{background:#6366f1;color:#fff;border:0;border-radius:8px;padding:.45rem 1.2rem;font-weight:600;font-size:.85rem;cursor:pointer}.rpt-filter-btn:hover{opacity:.9}.rpt-presets{display:flex;gap:.35rem;flex-wrap:wrap;margin-left:auto}.rpt-preset{padding:.3rem .7rem;border-radius:8px;font-size:.75rem;font-weight:600;background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb;cursor:pointer;text-decoration:none;transition:all .15s}.rpt-preset:hover,.rpt-preset.active{background:#6366f1;color:#fff;border-color:#6366f1}.rpt-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.rpt-stat{background:#fff;border-radius:12px;padding:1.25rem;text-align:center;box-shadow:0 1px 6px rgba(0,0,0,.06)}.rpt-stat-value{font-size:1.5rem;font-weight:700;color:#1f2937}.rpt-stat-label{font-size:.78rem;color:#9ca3af;font-weight:600;text-transform:uppercase;margin-top:.25rem}.rpt-stat-sub{font-size:.72rem;color:#9ca3af;margin-top:.15rem}.rpt-card{background:#fff;border-radius:12px;box-shadow:0 1px 6px rgba(0,0,0,.06);margin-bottom:1.5rem;overflow:hidden}.rpt-card-header{padding:1rem 1.5rem;font-weight:700;font-size:.95rem;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;align-items:center}.rpt-card-header-sub{font-size:.78rem;color:#9ca3af;font-weight:400}.rpt-card-body{padding:1.25rem 1.5rem}.rpt-table{width:100%;border-collapse:collapse;font-size:.85rem}.rpt-table thead th{background:#f9fafb;padding:.65rem 1rem;text-align:left;font-weight:600;color:#6b7280;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e5e7eb}.rpt-table thead th.num{text-align:right}.rpt-table tbody td{padding:.65rem 1rem;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.rpt-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums}.rpt-table tbody tr:hover{background:#faf5ff}.rpt-table tbody tr:last-child td{border-bottom:0}.rpt-table tfoot td{padding:.75rem 1rem;font-weight:700;border-top:2px solid #e5e7eb;background:#f9fafb;color:#1f2937}.rpt-table tfoot td.num{text-align:right}.rpt-badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.5px}.rpt-chart{background:#fff;border-radius:12px;box-shadow:0 1px 6px rgba(0,0,0,.06);padding:1.5rem;margin-bottom:1.5rem;position:relative;min-height:300px}.rpt-chart-title{font-size:.85rem;font-weight:700;color:#374151;margin-bottom:1rem}.rpt-export-bar{display:flex;gap:.5rem;flex-wrap:wrap}.rpt-export-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .85rem;border-radius:8px;font-size:.78rem;font-weight:600;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.25);text-decoration:none;transition:all .15s;cursor:pointer}.rpt-export-btn:hover{background:rgba(255,255,255,.3);color:#fff}.rpt-export-btn-dark{background:#f9fafb;color:#374151;border:1px solid #e5e7eb}.rpt-export-btn-dark:hover{background:#f3f4f6;color:#1f2937}.rpt-empty{text-align:center;padding:3rem;color:#9ca3af}.rpt-empty i{font-size:3rem;display:block;margin-bottom:.75rem}.rpt-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.rpt-hub-card{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 1px 6px rgba(0,0,0,.06);display:flex;align-items:flex-start;gap:1rem;text-decoration:none;color:inherit;transition:all .2s;border:1px solid transparent}.rpt-hub-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1);border-color:#e5e7eb;color:inherit;text-decoration:none}.rpt-hub-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;flex-shrink:0}.rpt-hub-info{flex:1;min-width:0}.rpt-hub-name{font-weight:700;font-size:.95rem;color:#1f2937;display:flex;align-items:center;gap:.5rem}.rpt-hub-desc{font-size:.82rem;color:#9ca3af;margin-top:.25rem;line-height:1.4}.rpt-hub-new{font-size:.62rem;padding:.1rem .45rem;border-radius:999px;background:#dcfce7;color:#16a34a;font-weight:700;text-transform:uppercase}.rpt-hub-category{font-size:.78rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem;margin-top:1.5rem}.rpt-hub-category:first-child{margin-top:0}@media(max-width:768px){.rpt-header{padding:1.25rem 1rem}.rpt-table thead{display:none}.rpt-table tbody td{display:block;text-align:right;padding:.4rem 1rem}.rpt-table tbody td::before{content:attr(data-label);float:left;font-weight:600;color:#6b7280}.rpt-hub-grid{grid-template-columns:1fr}.rpt-summary{grid-template-columns:repeat(2,1fr)}.rpt-presets{margin-left:0;width:100%}}