.dataviz-notify{position:fixed;top:80px;left:50%;transform:translate(-50%) translateY(-20px);padding:10px 28px;background:#34c759;color:#fff;border-radius:8px;font-size:14px;font-weight:500;z-index:9999;opacity:0;transition:all .3s ease;pointer-events:none;box-shadow:0 4px 14px #34c75959}.dataviz-notify--show{opacity:1;transform:translate(-50%) translateY(0)}.dataviz-chart-card--new{animation:cardSlideIn .4s ease}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(-16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.dataviz-page{min-height:100vh;padding-top:60px;padding-left:240px;background:#f5f5f7;transition:padding-left .3s ease}.dataviz-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:40px 20px}.dataviz-upload__icon{font-size:56px;margin-bottom:16px}.dataviz-upload__title{font-size:28px;font-weight:700;color:#1d1d1f;margin-bottom:8px}.dataviz-upload__desc{font-size:16px;color:#6e6e73;margin-bottom:32px}.dataviz-upload__zone{width:100%;max-width:520px;padding:48px 32px;border:2px dashed #d2d2d7;border-radius:16px;background:#fff;text-align:center;cursor:pointer;transition:all .25s ease}.dataviz-upload__zone:hover{border-color:#0071e3;background:#f0f7ff}.dataviz-upload__zone--over{border-color:#0071e3;background:#e8f3ff;transform:scale(1.01)}.dataviz-upload__hint{font-size:15px;color:#1d1d1f;margin-top:16px;margin-bottom:4px}.dataviz-upload__formats{font-size:13px;color:#86868b}.dataviz-upload__loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:#6e6e73;font-size:15px}.dataviz-spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#0071e3;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dataviz-upload__features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:520px;width:100%;margin-top:32px}@media(min-width:1024px){.dataviz-page{padding-left:0}.dataviz-upload__zone,.dataviz-upload__features{max-width:760px}}.dataviz-upload__feature{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border-radius:10px;font-size:14px;color:#1d1d1f;box-shadow:0 1px 3px #0000000f}.dataviz-toolbar{position:sticky;top:60px;z-index:20;display:flex;align-items:center;gap:16px;padding:12px 24px;background:#ffffffe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #e5e5ea}.dataviz-toolbar__btn{display:flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid #d2d2d7;border-radius:8px;background:#fff;font-size:13px;color:#1d1d1f;cursor:pointer;transition:all .2s;white-space:nowrap}.dataviz-toolbar__btn:hover{background:#f5f5f7;border-color:#0071e3;color:#0071e3}.dataviz-toolbar__file{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.dataviz-toolbar__filename{font-size:14px;font-weight:600;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dataviz-toolbar__info{font-size:12px;color:#86868b;white-space:nowrap}.dataviz-toolbar__views{display:flex;gap:4px;background:#f5f5f7;border-radius:8px;padding:3px}.dataviz-toolbar__viewbtn{padding:6px 14px;border:none;border-radius:6px;background:transparent;font-size:13px;color:#6e6e73;cursor:pointer;transition:all .2s;white-space:nowrap}.dataviz-toolbar__viewbtn--active{background:#fff;color:#1d1d1f;font-weight:600;box-shadow:0 1px 3px #00000014}.dataviz-content{padding:24px}.dataviz-section-title{font-size:18px;font-weight:700;color:#1d1d1f;margin-bottom:16px}.dataviz-section-title__sub{font-size:13px;font-weight:400;color:#86868b}.dataviz-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.dataviz-kpi{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f}.dataviz-kpi__label{font-size:13px;color:#86868b;margin-bottom:8px}.dataviz-kpi__value{font-size:28px;font-weight:700;color:#1d1d1f;margin-bottom:4px}.dataviz-kpi__sub{font-size:13px;color:#86868b}.dataviz-stats__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:32px}.dataviz-stat-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000000f}.dataviz-stat-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dataviz-stat-card__name{font-size:14px;font-weight:600;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.dataviz-stat-card__type{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500}.dataviz-stat-card__type--number{background:#e8f3ff;color:#0071e3}.dataviz-stat-card__type--text{background:#f5f0ff;color:#8b5cf6}.dataviz-stat-card__type--date{background:#fff3e0;color:#f57c00}.dataviz-stat-card__body{font-size:13px}.dataviz-stat-card__row{display:flex;justify-content:space-between;padding:4px 0;color:#48484a}.dataviz-stat-card__row span:first-child{color:#86868b}.dataviz-stat-card__row span:last-child{font-weight:500;color:#1d1d1f}.dataviz-stat-card__samples{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.dataviz-stat-card__tag{display:inline-block;padding:2px 8px;background:#f5f5f7;border-radius:4px;font-size:11px;color:#48484a;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dataviz-table-wrap{margin-bottom:24px}.dataviz-table-scroll{overflow-x:auto;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f}.dataviz-table{width:100%;border-collapse:collapse;font-size:13px}.dataviz-table th{position:sticky;top:0;background:#f5f5f7;padding:10px 14px;text-align:left;font-weight:600;color:#1d1d1f;border-bottom:1px solid #e5e5ea;white-space:nowrap}.dataviz-table td{padding:8px 14px;border-bottom:1px solid #f0f0f0;color:#48484a;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.dataviz-table tbody tr:hover{background:#f9f9fb}.dataviz-chart-config{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:24px;box-shadow:0 1px 3px #0000000f}.dataviz-chart-config__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dataviz-chart-config__row label{font-size:13px;font-weight:500;color:#48484a;white-space:nowrap}.dataviz-chart-config__row select{padding:6px 12px;border:1px solid #d2d2d7;border-radius:8px;font-size:13px;color:#1d1d1f;background:#fff;cursor:pointer;outline:none;min-width:120px}.dataviz-chart-config__row select:focus{border-color:#0071e3}.dataviz-chart-config__btn{padding:6px 16px;border:none;border-radius:8px;background:#0071e3;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.dataviz-chart-config__btn:hover{background:#0077ed}.dataviz-dashboard{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.dataviz-chart-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;overflow:hidden}.dataviz-chart-card__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0;font-size:14px;font-weight:600;color:#1d1d1f}.dataviz-chart-card__remove{border:none;background:none;color:#86868b;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .2s}.dataviz-chart-card__remove:hover{background:#ffe5e5;color:#ff3b30}.dataviz-chart-card__body{height:320px;padding:8px}html[data-theme=dark] .dataviz-page{background:#1a1a1e}html[data-theme=dark] .dataviz-upload__title{color:#e5e5e7}html[data-theme=dark] .dataviz-upload__desc{color:#98989d}html[data-theme=dark] .dataviz-upload__zone{background:#232326;border-color:#3a3a3c}html[data-theme=dark] .dataviz-upload__zone:hover,html[data-theme=dark] .dataviz-upload__zone--over{background:#2c2c2e;border-color:#0a84ff}html[data-theme=dark] .dataviz-upload__hint{color:#e5e5e7}html[data-theme=dark] .dataviz-upload__feature{background:#232326;color:#e5e5e7}html[data-theme=dark] .dataviz-toolbar{background:#1a1a1ee0;border-bottom-color:#3a3a3c}html[data-theme=dark] .dataviz-toolbar__btn{background:#232326;border-color:#3a3a3c;color:#e5e5e7}html[data-theme=dark] .dataviz-toolbar__btn:hover{background:#2c2c2e;border-color:#0a84ff;color:#0a84ff}html[data-theme=dark] .dataviz-toolbar__filename{color:#e5e5e7}html[data-theme=dark] .dataviz-toolbar__views{background:#232326}html[data-theme=dark] .dataviz-toolbar__viewbtn{color:#98989d}html[data-theme=dark] .dataviz-toolbar__viewbtn--active{background:#3a3a3c;color:#e5e5e7}html[data-theme=dark] .dataviz-section-title{color:#e5e5e7}html[data-theme=dark] .dataviz-kpi{background:#232326}html[data-theme=dark] .dataviz-kpi__value{color:#e5e5e7}html[data-theme=dark] .dataviz-kpi__label,html[data-theme=dark] .dataviz-kpi__sub{color:#98989d}html[data-theme=dark] .dataviz-stat-card{background:#232326}html[data-theme=dark] .dataviz-stat-card__name{color:#e5e5e7}html[data-theme=dark] .dataviz-stat-card__type--number{background:#1a2a3a;color:#64b5f6}html[data-theme=dark] .dataviz-stat-card__type--text{background:#2a1a3a;color:#b39ddb}html[data-theme=dark] .dataviz-stat-card__row span:last-child{color:#e5e5e7}html[data-theme=dark] .dataviz-stat-card__tag{background:#3a3a3c;color:#c7c7cc}html[data-theme=dark] .dataviz-table-scroll{background:#232326}html[data-theme=dark] .dataviz-table th{background:#2c2c2e;color:#e5e5e7;border-bottom-color:#3a3a3c}html[data-theme=dark] .dataviz-table td{color:#c7c7cc;border-bottom-color:#3a3a3c}html[data-theme=dark] .dataviz-table tbody tr:hover{background:#2c2c2e}html[data-theme=dark] .dataviz-chart-config{background:#232326}.dataviz-chart-config__row label{color:#c7c7cc}html[data-theme=dark] .dataviz-chart-config__row label{color:#98989d}html[data-theme=dark] .dataviz-chart-config__row select{background:#3a3a3c;border-color:#48484a;color:#e5e5e7}html[data-theme=dark] .dataviz-chart-config__btn{background:#0a84ff}html[data-theme=dark] .dataviz-chart-card{background:#232326}html[data-theme=dark] .dataviz-chart-card__header{border-bottom-color:#3a3a3c;color:#e5e5e7}html[data-theme=dark] .dataviz-chart-card__remove:hover{background:#3a1a1a;color:#ff453a}html[data-theme=dark] .dataviz-notify{background:#30d158;box-shadow:0 4px 14px #30d1584d}@media(max-width:768px){.dataviz-page{padding-left:0}.dataviz-dashboard{grid-template-columns:1fr}.dataviz-kpi-grid{grid-template-columns:repeat(2,1fr)}.dataviz-stats__grid,.dataviz-upload__features{grid-template-columns:1fr}.dataviz-toolbar{flex-wrap:wrap;gap:8px}.dataviz-chart-config__row{flex-direction:column;align-items:flex-start}.dataviz-chart-config__row select{width:100%}.dataviz-chart-config__btn{width:100%;text-align:center}}
