@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Praise&family=Space+Grotesk:wght@400;500;600;700&display=swap";.navbar{display:flex;justify-content:space-between;align-items:center;height:60px;padding:0 20px;background-color:#fff;border-bottom:1px solid #e5e7eb}.navbar .logo{font-family:Praise,cursive,system-ui,-apple-system,Segoe UI,Inter,sans-serif;font-size:24px;font-weight:700;color:#000;letter-spacing:.2px}.navbar .icons{display:flex;align-items:center;gap:12px}.navbar .icons .icon{width:20px;height:20px;color:#000;stroke-width:2;cursor:pointer;transition:transform .15s ease,color .15s ease}.navbar .icons .icon:hover{transform:translateY(-1px);color:#06f}.navbar .icons .icon:active{transform:translateY(0)}.navbar .icons .notification{position:relative;display:grid;place-items:center}.navbar .icons .notification .icon{width:20px;height:20px}.navbar .icons .notification span{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:999px;background-color:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff}.navbar .icons .user img{width:28px;height:28px;border-radius:999px;object-fit:cover;border:1px solid #e5e7eb;box-shadow:0 1px 2px #00000014;transition:box-shadow .2s ease,transform .15s ease}.navbar .icons .user img:hover{box-shadow:0 2px 6px #0000001f;transform:translateY(-1px)}.menu{display:flex;flex-direction:column;padding:20px;background-color:#f8f7fb;height:100%;overflow-y:auto;border-radius:5px;border:1px solid #d9d9d9;box-shadow:2px 2px 6px #00000014,-2px -2px 6px #fffc}.menu .section{display:flex;flex-direction:column}.menu .section .title{font-size:12px;font-weight:700;text-transform:uppercase;color:#888;margin:20px 0 10px}.menu .section .menuItem{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px;text-decoration:none;color:#000;font-weight:500;transition:all .2s}.menu .section .menuItem:hover{background:#927aff;color:#fff}.menu .section .menuItem.active{background:#927aff;color:#fff;font-weight:700}.menu .section .menuItem .menuIcon{width:20px;height:20px;color:currentColor}.menu .section .menuItem .menuItemTitle{font-size:14px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Space Grotesk,sans-serif;font-weight:400;height:100vh;margin:0;background-color:#f5ecfc;color:#000}a{text-decoration:none;color:inherit}.main{display:flex;flex-direction:column;min-height:100vh}.container{display:flex;flex:1;min-height:0}.menuContainer{width:250px}.contentContainer{flex:1;padding:20px;overflow-y:auto;background-color:#fff}.navbar{background-color:#fff}.footer{padding:15px 20px;display:flex;justify-content:space-between;background-color:#fff}:root{--bg: #ffffff;--card: #ffffff;--muted: #2a2a2a;--text: #000000;--subtle: #a9a9a9;--accent-1: #6ee7b7;--accent-2: #93c5fd;--accent-3: #fca5a5;--accent-4: #fde68a;--legend-display: none}@media (min-width: 768px){:root{--legend-display: block}}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,sans-serif}.container{padding:12px}@media (min-width: 768px){.container{padding:16px}}.home{display:grid;gap:16px}.box{background:var(--card);border:1px solid var(--muted);border-radius:4px;padding:14px}.box.empty{text-align:center;padding:20px}.panel-title{font-size:16px;font-weight:600;margin-bottom:8px}.kpi-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.kpi-grid{grid-template-columns:repeat(4,1fr)}}.metric{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;border:1px solid var(--muted);border-radius:4px;padding:12px}.metric .icon{font-size:20px}.metric .meta .label{font-size:12px;color:var(--subtle)}.metric .meta .value{font-size:22px;font-weight:700}.metric .progress{grid-column:1/-1;height:8px;background:#0f0f0f;border-radius:999px;margin-top:8px;overflow:hidden}.metric .progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2))}.metric .sparkline{grid-column:1/-1;height:48px}@media (min-width: 640px){.span-2{grid-column:span 2}}.chart{height:280px}@media (min-width: 768px){.chart{height:320px}}.chart--tall{height:360px}@media (min-width: 768px){.chart--tall{height:420px}}.echart-host{height:300px}@media (min-width: 768px){.echart-host{height:360px}}.echart-host>div,.echarts-for-react,.echarts-for-react>div,.echart-host canvas{height:100%!important}.users,.shortlist,.data,.edit{background-color:red}:root{--paper:#ffffff;--ink:#141826;--ink-dim:#59607a;--line:#e7e8f2;--bg-top:#f6f5fa;--bg-bot:#f2f3f7;--accent:#8276f0;--accent-2:#a29be8;--accent-3:#c7c4ee;--ok:#1ea66a;--warn:#d28a1f;--bad:#dc4a4a;--chip-bg:#eef0f7;--chip-ink:#2e3140;--shadow:0 10px 24px rgba(20,24,38,.06)}.upload-page{padding:clamp(16px,2.5vw,28px);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,var(--bg-top),var(--bg-bot))}.upload-page .header{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;margin-bottom:clamp(10px,2.4vw,24px)}.upload-page .header .title h1{margin:0;font-size:clamp(20px,3vw,28px);font-weight:700;letter-spacing:-.01em}.upload-page .header .title .subtitle{margin:6px 0 0;color:var(--ink-dim);font-size:13px}.upload-page .header .header-actions>*{height:40px}.upload-page .panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:clip}.upload-page .panel .panel-head{padding:16px clamp(14px,2.4vw,22px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}@media (max-width: 900px){.upload-page .panel .panel-head{grid-template-columns:1fr}}.upload-page .panel .panel-head .stats{display:flex;gap:12px;flex-wrap:wrap}.upload-page .panel .panel-head .stats .stat{border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:108px;background:linear-gradient(180deg,#fff,#fafbff)}.upload-page .panel .panel-head .stats .stat .stat-label{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.upload-page .panel .panel-head .stats .stat .stat-value{display:block;margin-top:4px;font-weight:700;font-size:17px}.upload-page .panel .panel-head .stats .stat .stat-ok{color:var(--ok)}.upload-page .panel .panel-head .stats .stat .stat-warn{color:var(--warn)}.upload-page .panel .panel-head .stats .stat .stat-bad{color:var(--bad)}.upload-page .panel .panel-head .tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.upload-page .panel .panel-head .tools .search{position:relative}.upload-page .panel .panel-head .tools .search .input{height:40px;border-radius:12px;border:1px solid var(--line);padding:0 36px 0 12px;min-width:min(46vw,420px);font-size:14px;outline:none;background:#fff;transition:border-color .2s,box-shadow .2s}.upload-page .panel .panel-head .tools .search .input:focus{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-2) 18%,transparent)}.upload-page .panel .panel-head .tools .search .kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink-dim);opacity:.75}.upload-page .panel .panel-head .tools .columns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.upload-page .panel .panel-head .tools .columns .muted{color:var(--ink-dim);font-size:12px}.upload-page .panel .panel-head .tools .sliders{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.upload-page .panel .panel-head .tools .slider{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.upload-page .panel .panel-head .tools .slider span{font-size:12px;color:var(--ink-dim)}.upload-page .panel .panel-head .tools .slider output{min-width:40px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}.upload-page .panel .panel-head .tools .slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:140px;height:4px;border-radius:999px;background:var(--accent-3);outline:none;background-image:linear-gradient(90deg,var(--accent),var(--accent-2));background-size:var(--_progress, 0%) 100%;background-repeat:no-repeat}.upload-page .panel .panel-head .tools .slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid var(--accent-2);box-shadow:0 2px 6px #14182626}.upload-page .panel .panel-head .tools .slider input[type=range]::-moz-range-thumb{width:16px;height:16px;border:1px solid var(--accent-2);background:#fff;border-radius:50%;box-shadow:0 2px 6px #14182626}.upload-page .panel .table-wrap{overflow:auto;-webkit-mask-image:linear-gradient(to right,transparent 0,black 16px,black calc(100% - 16px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,black 16px,black calc(100% - 16px),transparent 100%)}.upload-page .panel .grid-zoom{--gridRowScale:1;--cellY: calc(12px * var(--gridRowScale));--cellX: calc(14px * var(--gridRowScale));--headY: calc(11px * var(--gridRowScale));--headX: calc(12px * var(--gridRowScale));--font: calc(14px * var(--gridRowScale));--badgeY: calc(2px * var(--gridRowScale));--badgeX: calc(8px * var(--gridRowScale));--chipY: calc(5px * var(--gridRowScale));--chipX: calc(9px * var(--gridRowScale));--resizerW: calc(6px * var(--gridRowScale));--minWidth:820px;font-size:var(--font)}.upload-page .panel .grid-zoom table{width:100%;border-collapse:separate;border-spacing:0;min-width:var(--minWidth)}.upload-page .panel .grid-zoom table thead{position:sticky;top:0;z-index:1}.upload-page .panel .grid-zoom table thead th{position:relative;text-align:left;background:#fff;border-bottom:1px solid var(--line);color:var(--ink-dim);font-weight:600;padding:var(--headY) var(--headX);white-space:nowrap}.upload-page .panel .grid-zoom table thead th .sort-cue{margin-left:calc(6px * var(--gridRowScale));opacity:.65}.upload-page .panel .grid-zoom table thead th .resizer{position:absolute;right:0;top:0;width:var(--resizerW);height:100%;cursor:col-resize;touch-action:none;opacity:0;transition:opacity .15s}.upload-page .panel .grid-zoom table thead th:hover .resizer{opacity:1}.upload-page .panel .grid-zoom table thead th.sorted{color:var(--ink)}.upload-page .panel .grid-zoom table tbody tr{transition:background .15s ease}.upload-page .panel .grid-zoom table tbody tr:hover{background:#f9f9ff}.upload-page .panel .grid-zoom table tbody td{padding:var(--cellY) var(--cellX);border-bottom:1px solid var(--line);vertical-align:middle}.upload-page .panel .grid-zoom .badge{display:inline-flex;align-items:center;padding:var(--badgeY) var(--badgeX);border-radius:999px;background:var(--chip-bg);color:var(--chip-ink);font-size:calc(12px * var(--gridRowScale));line-height:calc(20px * var(--gridRowScale))}.upload-page .panel .grid-zoom .chip{display:inline-flex;align-items:center;padding:var(--chipY) var(--chipX);border-radius:8px;font-weight:600;font-size:calc(12px * var(--gridRowScale));border:1px solid transparent}.upload-page .panel .grid-zoom .chip--ok{background:color-mix(in srgb,var(--ok) 16%,#fff);color:#0b3a2f;border-color:color-mix(in srgb,var(--ok) 26%,#fff)}.upload-page .panel .grid-zoom .chip--warn{background:color-mix(in srgb,var(--warn) 16%,#fff);color:#3f2a05;border-color:color-mix(in srgb,var(--warn) 26%,#fff)}.upload-page .panel .grid-zoom .chip--bad{background:color-mix(in srgb,var(--bad) 16%,#fff);color:#3f0606;border-color:color-mix(in srgb,var(--bad) 26%,#fff)}.upload-page .panel .grid-zoom .cell-strong{font-weight:600;color:#151a2e}.upload-page .panel .grid-zoom .cell-dim{color:var(--ink-dim)}.upload-page .panel .grid-zoom .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.gbtn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .04s ease,box-shadow .2s,border-color .2s,background .2s}.gbtn:hover{box-shadow:0 8px 20px #14182614}.gbtn:active{transform:translateY(1px)}.gbtn--ghost{background:#fff}.empty-hint{padding:46px 14px 60px;text-align:center;color:var(--ink-dim)}@media (max-width: 720px){.upload-page .panel .panel-head .tools .search .input{min-width:100%}}.progress{background-color:red}
