*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#14161a;background:#fafaf9}#root{min-height:100dvh}h1,h2,h3,p{margin:0}.sp-header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px;padding:0 32px;border-bottom:1px solid #E4E6EA;background:#fff}.sp-header-brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:34px;height:34px;flex-shrink:0}.sp-header-text{display:flex;flex-direction:column;min-width:0}.sp-header-name{font-size:16px;font-weight:700;color:#14161a;letter-spacing:-.01em;line-height:1.2}.sp-header-tagline{font-size:13px;color:#6b7280;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-header-note{font-size:13px;color:#6b7280;white-space:nowrap;flex-shrink:0}@media (max-width: 640px){.sp-header{padding:0 20px}.sp-header-tagline,.sp-header-note{display:none}}.upload-zone-wrap{width:100%}.upload-zone{position:relative;width:100%;min-height:260px;display:flex;align-items:center;justify-content:center;border:1.5px dashed #D3D6DC;border-radius:14px;background:#fff;cursor:pointer;padding:32px 24px;transition:border-color .18s ease,background-color .18s ease}.upload-zone:focus-visible{outline:2px solid #0F7A4D;outline-offset:3px}.upload-zone.status-idle:hover,.upload-zone.drag-active{border-color:#0f7a4d;background:#f3fbf7}.upload-zone.status-error{border-color:#fda29b;background:#fef6f5;border-style:solid}.upload-zone.status-parsing{border-color:#d3d6dc;background:#fff;border-style:solid;cursor:default}.upload-zone-input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.zone-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;max-width:320px}.zone-icon{width:34px;height:34px;color:#6b7280;margin-bottom:8px}.status-idle .zone-icon,.status-error .zone-icon{color:#6b7280}.status-icon{width:30px;height:30px;margin-bottom:6px}.status-icon-error{color:#d92d20}.zone-title{font-size:15px;font-weight:600;color:#14161a;word-break:break-word}.zone-subtitle{font-size:13.5px;color:#6b7280}.zone-hint{font-size:12.5px;color:#6b7280;margin-top:4px}.zone-link{margin-top:6px;background:none;border:none;padding:4px 8px;font-size:13.5px;font-weight:600;color:#0f7a4d;cursor:pointer;border-radius:8px}.zone-link:hover{background:#0f7a4d14}.zone-link:focus-visible{outline:2px solid #0F7A4D;outline-offset:2px}.status-error .zone-link{color:#d92d20}.status-error .zone-link:hover{background:#d92d2014}.status-error .zone-link:focus-visible{outline-color:#d92d20}.zone-spinner{color:#0f7a4d;animation:zone-spin .8s linear infinite}@keyframes zone-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.upload-zone{transition:none}.zone-spinner{animation:none}}.landing{flex:1;background:#fafaf9}.landing-grid{width:100%;max-width:1080px;margin:0 auto;padding:88px 32px 96px;display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:64px;align-items:center}.landing-copy{display:flex;flex-direction:column;align-items:flex-start}.landing-headline{font-size:40px;line-height:1.15;letter-spacing:-.02em;font-weight:700;color:#14161a;margin:0 0 16px}.landing-subtext{font-size:16px;line-height:1.55;color:#4b5563;margin:0 0 32px;max-width:42ch}.landing-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.sample-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#0f7a4d;color:#fff;font-size:15px;font-weight:600;padding:13px 24px;border-radius:8px;cursor:pointer;transition:background-color .15s ease,transform .08s ease}.sample-button:hover{background:#0c6540}.sample-button:active{transform:translateY(1px)}.sample-button:focus-visible{outline:2px solid #0C6540;outline-offset:3px}.sample-caption{font-size:13.5px;color:#6b7280;margin:0}.upload-column{width:100%;display:flex;flex-direction:column;gap:12px}.upload-meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.upload-format-hint{font-size:13px;color:#6b7280;margin:0;max-width:40ch}.upload-sample-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:2px 0;font-size:13px;font-weight:600;color:#0f7a4d;cursor:pointer;white-space:nowrap;text-decoration:none}.upload-sample-link:hover{text-decoration:underline}.upload-sample-link:focus-visible{outline:2px solid #0F7A4D;outline-offset:3px}@media (max-width: 860px){.landing-grid{grid-template-columns:1fr;gap:40px;padding:48px 24px}.landing-copy{align-items:center;text-align:center}.landing-headline{font-size:32px;max-width:none}.landing-subtext{max-width:48ch}.landing-cta{align-items:center;width:100%}}@media (max-width: 480px){.landing-grid{padding:36px 16px}.sample-button{width:100%;text-align:center}}.kpi-card{background:#fff;border:1px solid #E4E6EA;border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:6px}.kpi-label{font-size:13.5px;color:#6b7280;margin:0}.kpi-value{font-size:28px;font-weight:700;color:#14161a;letter-spacing:-.01em;margin:0;font-variant-numeric:proportional-nums}.kpi-trend{display:flex;align-items:center;gap:4px;font-size:13.5px;font-weight:600;margin:2px 0 0}.kpi-arrow{width:10px;height:10px;flex-shrink:0}.kpi-trend-up{color:#0f7a4d}.kpi-trend-down{color:#d92d20}@media (max-width: 480px){.kpi-card{padding:16px 18px}.kpi-value{font-size:24px}}.chart-card{background:#fff;border:1px solid #E4E6EA;border-radius:14px;padding:24px;display:flex;flex-direction:column;min-width:0}.chart-card-header{margin-bottom:16px}.chart-card-title{font-size:15px;font-weight:600;color:#14161a;margin:0}.chart-card-subtitle{font-size:13px;color:#6b7280;margin:2px 0 0}.chart-tooltip{background:#fff;border:1px solid #E4E6EA;border-radius:8px;padding:8px 12px;min-width:120px}.chart-tooltip-label{font-size:12.5px;color:#6b7280;margin:0 0 2px}.chart-tooltip-value{font-size:14px;font-weight:700;color:#14161a;margin:0}.chart-tooltip-row{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#14161a;margin:2px 0 0}.chart-swatch{width:8px;height:8px;flex-shrink:0}.chart-empty{display:flex;align-items:center;justify-content:center;text-align:center;background:#fafaf9;border-radius:8px}.chart-empty-text{font-size:13.5px;color:#6b7280;max-width:30ch;margin:0;padding:24px}.revenue-trend-card{grid-column:1 / -1}.revenue-trend-plot{width:100%;height:260px}.top-products-plot{width:100%}.region-plot{width:100%;height:40px}.region-list{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.region-list-item{display:flex;align-items:center;gap:8px;font-size:13.5px}.region-list-name{color:#14161a}.region-list-value{margin-left:auto;color:#14161a;font-weight:600}.region-list-share{color:#6b7280;min-width:32px;text-align:right}.insights-panel{background:#f3fbf7;border:1px solid #A7E3C5;border-radius:14px;padding:24px}.insights-title{font-size:15px;font-weight:600;color:#14161a;margin:0 0 14px}.insights-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.insights-item{font-size:14.5px;line-height:1.55;color:#14161a;max-width:68ch}@media (max-width: 480px){.insights-panel{padding:20px}}.dashboard{flex:1;background:#fafaf9}.dashboard-toolbar{max-width:1200px;margin:0 auto;padding:24px 32px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.dashboard-source{font-size:13.5px;color:#6b7280;margin:0}.dashboard-reset{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:4px 8px;font-size:13.5px;font-weight:600;color:#0f7a4d;cursor:pointer;border-radius:8px;flex-shrink:0}.dashboard-reset:hover{background:#0f7a4d14}.dashboard-reset:focus-visible{outline:2px solid #0F7A4D;outline-offset:2px}.kpi-row{max-width:1200px;margin:0 auto;padding:20px 32px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.insights-row{max-width:1200px;margin:0 auto;padding:20px 32px 0}.charts-grid{max-width:1200px;margin:0 auto;padding:20px 32px 48px;display:grid;grid-template-columns:1.4fr 1fr;gap:16px}@media (max-width: 860px){.kpi-row{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}}@media (max-width: 640px){.dashboard-toolbar{padding:20px 20px 0;flex-direction:column;align-items:flex-start;gap:8px}.kpi-row,.insights-row{padding:16px 20px 0}.charts-grid{padding:16px 20px 40px}}@media (max-width: 480px){.kpi-row{grid-template-columns:1fr}}.app{display:flex;flex-direction:column;min-height:100dvh}
