:root{--bg:#f6f7f9;--surface:#fff;--surface-muted:#f1f3f6;--surface-hover:#f8fafc;--border-color:#dce1e8;--border-strong:#c6ced8;--primary:#10253e;--primary-muted:#e8edf3;--text-primary:#111827;--text-secondary:#5f6b7a;--text-muted:#8b95a3;--danger:#b42318;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--font-family:Inter, "Noto Sans JP", "Hiragino Sans", "Yu Gothic", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);min-height:100vh;color:var(--text-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button,input,select,table{font:inherit}button{border:0}h1,h2,h3,h4{letter-spacing:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#c5ccd6;border-radius:12px}.app-container{min-height:100vh}.app-header{border-bottom:1px solid var(--border-color);background:#fffffff0}.header-content{justify-content:space-between;align-items:center;gap:16px;max-width:1500px;min-height:60px;margin:0 auto;padding:10px 24px;display:flex}.logo-text{color:var(--text-primary);letter-spacing:.04em;font-size:18px;font-weight:780}.header-subtitle,.header-status{color:var(--text-secondary);font-size:12px;line-height:1.35}.header-status{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.dashboard-container{width:100%;max-width:1500px;margin:0 auto;padding:20px 24px 32px}.dashboard-container.single-column{display:block}.workspace-layout{grid-template-columns:352px minmax(0,1fr);align-items:start;gap:20px;display:grid}.glass-panel{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 1px 2px #1118270a}.sidebar{gap:14px;display:grid}.control-panel,.ranking-panel{padding:16px}.control-panel{position:sticky;top:80px}.ranking-panel{flex-direction:column;min-height:320px;max-height:calc(100vh - 348px);display:flex}.section-heading{align-items:center;gap:8px;margin-bottom:14px;display:flex}.section-heading.compact{margin-bottom:10px}.section-heading h2{color:var(--text-primary);font-size:14px;font-weight:720}.selector-group{gap:7px;margin-bottom:14px;display:grid}.selector-group label{color:var(--text-secondary);font-size:12px;font-weight:700}.segmented-control{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-muted);grid-template-columns:repeat(3,1fr);gap:4px;padding:3px;display:grid}.segmented-control button,.detail-tabs button,.primary-button{border-radius:var(--radius-sm);min-height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;font-size:12px;font-weight:700;transition:background .15s,color .15s,box-shadow .15s}.segmented-control button.active,.detail-tabs button.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 2px #11182714}.select-box{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:36px;color:var(--text-primary);outline:none;padding:8px 10px;font-size:13px}.select-box:focus{border-color:var(--primary);box-shadow:0 0 0 3px #10253e14}.data-note{color:var(--text-muted);margin-top:12px;font-size:11px;line-height:1.55}.ranking-list{gap:2px;min-height:0;padding-right:2px;display:grid;overflow-y:auto}.ranking-row{border-radius:var(--radius-md);width:100%;min-height:56px;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:28px minmax(0,1fr) auto 14px;align-items:center;gap:8px;padding:8px;display:grid}.ranking-row:hover{background:var(--surface-hover)}.ranking-row.active{background:var(--primary-muted);border-color:var(--border-strong)}.ranking-rank{color:var(--text-muted);text-align:right;font-size:12px;font-weight:760}.ranking-main{gap:2px;min-width:0;display:grid}.ranking-main strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:720;line-height:1.25;overflow:hidden}.ranking-main small{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.25;overflow:hidden}.ranking-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:14px;font-weight:780}.detail-view{gap:14px;min-width:0;display:grid}.profile-card{grid-template-columns:62px minmax(240px,1fr) minmax(460px,1.45fr);align-items:center;gap:16px;padding:18px;display:grid}.profile-avatar-container{border:1px solid var(--border-color);background:var(--surface-muted);width:56px;height:56px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:23px;font-weight:780;display:flex}.profile-title-line{align-items:center;gap:10px;min-width:0;display:flex}.profile-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:26px;font-weight:780;line-height:1.15;overflow:hidden}.profile-meta{color:var(--text-secondary);flex-wrap:wrap;gap:7px 13px;margin-top:8px;font-size:12px;line-height:1.35;display:flex}.profile-meta span{align-items:center;gap:5px;display:inline-flex}.player-item-badge{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-muted);height:22px;color:var(--primary);white-space:nowrap;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:760;display:inline-flex}.stats-grid{grid-template-columns:repeat(5,minmax(86px,1fr));gap:8px;display:grid}.stat-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-hover);min-height:68px;padding:10px}.stat-card-label{color:var(--text-secondary);font-size:11px;font-weight:700;line-height:1.25}.stat-card-value{color:var(--text-primary);font-variant-numeric:tabular-nums;margin-top:7px;font-size:21px;font-weight:780;line-height:1.1}.detail-tabs{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-muted);align-items:center;gap:4px;width:fit-content;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.detail-tabs button{white-space:nowrap;padding:0 12px}.analysis-grid{grid-template-columns:minmax(430px,.9fr) minmax(0,1.25fr);gap:14px;display:grid}.heatmap-container,.table-panel{min-width:0;padding:18px}.heatmap-container.wide .course-board{max-width:920px}.heatmap-title,.table-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:14px;font-size:15px;font-weight:740;line-height:1.3;display:flex}.course-board{gap:8px;width:100%;max-width:620px;margin:0 auto;display:grid}.course-image-wrap{aspect-ratio:16/9;border:1px solid var(--border-color);border-radius:var(--radius-md);background:#fff;width:100%;position:relative;overflow:hidden}.course-reference-image{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.course-board.left-hitter .course-reference-image{transform:scaleX(-1)}.pitch-grid{background:0 0;border:0;grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(5,1fr);gap:0;width:29.375%;height:52.25%;display:grid;position:absolute;top:17.25%;left:23.75%}.course-board.left-hitter .pitch-grid{left:auto;right:23.75%}.grid-cell{color:#fff;cursor:pointer;font-variant-numeric:tabular-nums;border:1px solid #10253e21;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.grid-cell:hover{z-index:2;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.grid-cell-avg{text-shadow:0 1px 1px #00000047;font-size:12px;font-weight:800;line-height:1.05}.grid-cell-ab{opacity:.86;margin-top:2px;font-size:9px;font-weight:700;line-height:1}.strike-zone-border-top{border-top:2px solid #1118278c!important}.strike-zone-border-bottom{border-bottom:2px solid #1118278c!important}.strike-zone-border-left{border-left:2px solid #1118278c!important}.strike-zone-border-right{border-right:2px solid #1118278c!important}.course-caption{color:var(--text-muted);text-align:center;margin-top:8px;font-size:11px}.heatmap-readout{min-height:42px;color:var(--text-secondary);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;font-size:12px;display:flex}.heatmap-readout strong{color:var(--text-primary)}.premium-table-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);min-width:0;overflow-x:auto}.premium-table{border-collapse:collapse;text-align:left;width:100%}.premium-table th{border-bottom:1px solid var(--border-color);background:var(--surface-muted);height:38px;color:var(--text-secondary);white-space:nowrap;padding:9px 12px;font-size:11px;font-weight:740;line-height:1.25}.premium-table td{height:40px;color:var(--text-primary);white-space:nowrap;border-bottom:1px solid #edf0f4;padding:9px 12px;font-size:13px;line-height:1.25}.premium-table tr:last-child td{border-bottom:none}.premium-table tbody tr:hover td{background:var(--surface-hover)}.premium-table .num{text-align:right;font-variant-numeric:tabular-nums}.premium-table .strong{font-weight:780}.splits-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.loading-view,.error-view{min-height:52vh;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.error-view svg{color:var(--danger)}.primary-button{background:var(--primary);color:#fff;padding:0 14px}.spinner{border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1220px){.workspace-layout,.analysis-grid,.splits-grid{grid-template-columns:1fr}.control-panel{position:static}.ranking-panel{max-height:440px}.profile-card{grid-template-columns:62px minmax(0,1fr)}.stats-grid{grid-column:1/-1}}@media (width<=720px){.header-content{flex-direction:column;align-items:flex-start}.dashboard-container{padding:12px}.control-panel,.ranking-panel,.profile-card,.heatmap-container,.table-panel{padding:14px}.profile-card{grid-template-columns:1fr}.profile-avatar-container{display:none}.profile-name{font-size:23px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-board{max-width:100%}}@media (width<=460px){.stats-grid{grid-template-columns:1fr}.ranking-row{grid-template-columns:24px minmax(0,1fr) auto}.ranking-row svg{display:none}}
