:root {
  --ink: #20252b;
  --muted: #69717a;
  --paper: #f3f5f6;
  --card: #ffffff;
  --line: #dce1e5;
  --accent: #d35424;
  --accent2: #257e83;
  --good: #19765c;
  --warn: #9a531b;
}
* { letter-spacing: 0 !important; }
body { background: var(--paper); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
header { padding: 22px max(24px, calc((100% - 1240px) / 2)) 0; background: #171a1f; border-bottom: 0; }
header::after { display: none; }
.brand { max-width: 1240px; margin: 0 auto; gap: 18px; align-items: center; }
.brandMark { width: 64px; height: 72px; font-size: 16px; border: 1px solid #454039; border-radius: 8px; background: #252321; box-shadow: none; position: relative; }
.brandMark::before { content: ""; display: block; position: absolute; inset: 12px 8px; background: #f28d58; mask: url("icons/fingerprint.svg") center / contain no-repeat; -webkit-mask: url("icons/fingerprint.svg") center / contain no-repeat; }
.brandKicker { margin: 0 0 7px; color: #aab0b8; font-size: 11px; font-weight: 600; }
header h1 { display: block; font-size: 28px; line-height: 1.3; margin: 0; color: #f6f7f9; font-weight: 700; }
.titleChunk { display: inline; white-space: normal; }
html[lang="en"] .titleChunk + .titleChunk::before { content: " "; }
.brandMeta { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin-top: 10px; }
.signature { display: inline; margin: 0; padding: 0; border: 0; background: none; color: #c3c7cf; font-size: 12px; font-weight: 400; border-radius: 0; }
.lastUpdated { margin: 0; font-size: 12px; font-weight: 400; color: #929ba5; }
.userToolbar { max-width: 1240px; margin: 18px auto 0; padding: 0; display: flex; align-items: stretch; justify-content: space-between; gap: 12px; flex-wrap: wrap; border: 0; background: none; }
.workspaceNavigation, .accountTools { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; min-width: 0; }
.workspaceNavigation button { min-height: 48px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #b8bec7; border-radius: 0; padding: 11px 16px; box-shadow: none; font-size: 13px; }
.workspaceNavigation button.active { border-bottom-color: #ed8752; color: #fff; background: #24272d; }
.workspaceNavigation button:hover { background: #292d33; color: #fff; transform: none; }
.accountTools { gap: 12px; padding-bottom: 6px; font-size: 12px; }
.testerBadge { background: none; color: #c4cad0; border: 0; padding: 0; font-size: 12px; max-width: 240px; overflow-wrap: anywhere; }
.languageSwitcher { border-radius: 5px; border-color: #41464d; background: #24272d; padding: 2px; }
.userToolbar .languageSwitcher button { min-height: 26px; padding: 4px 8px; color: #b8bec7; background: transparent; border: 0; border-radius: 3px; font-size: 11px; }
.userToolbar .languageSwitcher button.active { background: #454a52; color: white; }
.accountTools a { color: #b8bec7; border: 0; border-radius: 0; background: transparent; padding: 6px 0; font-size: 12px; }
main.grid { display: block; max-width: 1240px; padding: 28px 24px 36px; margin: 0 auto; }
.analysisView { display: contents; }
main > .card, .analysisView > .card { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0 0 26px; margin: 0 0 26px; border-bottom: 1px solid var(--line); min-width: 0; }
h2 { font-size: 19px; line-height: 1.4; margin: 0 0 6px; }
h3 { font-size: 15px; line-height: 1.5; }
.hint, .status { font-size: 12px; line-height: 1.65; }
.heroIntro { font-size: 14px; line-height: 1.9; font-weight: 400; color: #525c65; max-width: 980px; }
#analysisWorkspace > .hint { margin: 0 0 12px; }
button, a.secondary { border-radius: 5px; box-shadow: none; font-size: 13px; background: #fff; color: #414a53; border: 1px solid #cfd6dd; transition: background .15s, border-color .15s; }
button:hover { transform: none; background: #f3f5f6; border-color: #afb9c3; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid #217f88; outline-offset: 3px; }
button:disabled { opacity: .52; cursor: not-allowed; }
input, select { border-radius: 5px; border-color: #cdd5dc; background: #fff; color: var(--ink); font-size: 13px; max-width: 100%; }
input[type="checkbox"] { accent-color: #d35424; flex: 0 0 auto; }
.singleModeRow { display: block; padding: 16px 0 0; margin: 0; border: 0; border-radius: 0; background: transparent; }
.singleModeRow > label { display: none; }
#analysisMode { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip-path: inset(50%); }
#analysisMode:focus-visible { position: static; width: auto; height: 38px; opacity: 1; clip-path: none; margin-top: 10px; }
.modeSegments { display: flex; width: fit-content; max-width: 100%; background: #e6eaed; padding: 4px; border-radius: 6px; gap: 4px; }
.modeSegments button { min-width: 140px; min-height: 40px; border: 1px solid transparent; background: transparent; font-weight: 600; color: #69727c; padding: 8px 18px; }
.modeSegments button.active { background: white; border-color: #e2bdac; color: #b3451d; box-shadow: 0 1px 2px #00000008; }
#analysisModeHint { margin: 9px 0 0; }
.uploadSecurityNote { background: transparent; padding: 0; border: 0; margin: 4px 0 18px; color: #75808b; font-size: 11px; }
.analysisPanel { margin-top: 16px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.analysisPanel > h3 { margin: 0 0 2px; }
.analysisPanel > .hint { margin: 0 0 16px; }
.singleAnalysisLayout, .multiAnalysisLayout { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.uploadPanel { background: #fff; border: 1px solid #d9e0e6; border-radius: 8px; padding: 18px; box-shadow: none; min-width: 0; }
.uploadPanelLeft, .uploadPanelGroupA { border-top: 3px solid #2c858a; }
.uploadPanelRight, .uploadPanelGroupB { border-top: 3px solid #e07742; }
.uploadPanelHeader { align-items: start; gap: 12px; margin-bottom: 14px; }
.uploadPanelHeader h3 { margin: 0 0 3px; font-size: 15px; }
.uploadPanelHeader .hint { margin: 0; min-height: 32px; }
.uploadSummaryPill { white-space: nowrap; border-radius: 4px; color: #52616f; border: 0; background: #edf1f4; font-size: 11px; padding: 4px 8px; }
.demoUploadZone { position: relative; display: flex; align-items: center; justify-content: center; min-height: 76px; background: #f8fafb; border: 1px dashed #bdc8d2; border-radius: 5px; cursor: pointer; color: #4d616f; font-size: 13px; gap: 10px; }
.demoUploadZone:hover { background: #eef4f6; border-color: #4b8994; }
.demoUploadZone:focus-within { outline: 2px solid #217f88; outline-offset: 2px; }
.demoUploadZone::before { content: ""; width: 23px; height: 23px; background: #62808e; mask: url("icons/upload.svg") center / contain no-repeat; -webkit-mask: url("icons/upload.svg") center / contain no-repeat; }
.demoUploadZone input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; padding: 0; }
.uploadProgress { padding: 0; margin: 12px 0 0; border: 0; border-radius: 0; background: none; }
.uploadProgressTop { font-size: 11px; gap: 8px; }
.bar { height: 5px; background: #e6ecef; border-radius: 3px; }
.bar > div { background: #29868a; border-radius: 3px; }
.uploadTask { border-radius: 5px; background: #f6f8fa; }
.demoSelector { border: 0; border-top: 1px solid var(--line); background: transparent; border-radius: 0; margin-top: 16px; padding: 14px 0 0; }
.demoSelector strong { overflow-wrap: anywhere; }
.demoSelector select { width: 100%; min-height: 38px; }
.analysisOptionsPanel { display: flex; gap: 18px; padding: 18px 0 0; margin-top: 6px; border: 0; border-radius: 0; background: transparent; }
.analysisOptionBox { flex: 1; padding: 0; background: transparent; border: 0; border-radius: 0; align-items: start; min-width: 0; gap: 9px; }
.analysisOptionBox strong { font-size: 13px; color: #3c4751; }
.analysisOptionBox span span { font-size: 11px; color: #7a828b; line-height: 1.7; }
.analysisOptionBox input { margin-top: 3px; width: 16px; height: 16px; }
.analysisOptionsDetails { margin-top: 12px; color: #7a828b; font-size: 11px; }
.analysisOptionsDetails summary { width: fit-content; cursor: pointer; }
.analysisOptionsDetails .hint { font-size: 11px; }
#analysisOptionsHint:empty { display: none; }
#runSingleBtn, #runMultiBtn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 42px; padding: 10px 20px; background: #d35424; color: #fff; border: 1px solid #d35424; }
#runSingleBtn:hover, #runMultiBtn:hover { background: #b6461d; border-color: #b6461d; }
#runSingleBtn:disabled, #runMultiBtn:disabled { background: #d9dfe3; color: #76818a; border-color: #d9dfe3; opacity: 1; }
#runSingleBtn::before, #runMultiBtn::before { content: ""; width: 16px; height: 16px; background: currentColor; mask: url("icons/play.svg") center / contain no-repeat; -webkit-mask: url("icons/play.svg") center / contain no-repeat; }
.analysisPanel > p:has(#runSingleBtn), .analysisPanel > p:has(#runMultiBtn) { margin: 18px 0 6px; }
#singleReadyHint, #multiReadyHint { margin: 6px 0 0; color: #78818a; }
#statusSection { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: start; gap: 20px; }
#statusSection[hidden] { display: none !important; }
.progressBox { padding: 0; background: transparent; border: 0; border-radius: 0; }
.progressBox .bar { margin: 10px 0; }
#compatibilitySection h2 { font-size: 14px; color: #65717c; }
#compatibilitySection .hint { margin: 6px 0 0; font-size: 11px; }
.capabilityGrid { gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 24px; }
.capability { border: 1px solid #dce2e7; border-radius: 6px; padding: 18px 16px; background: #fff; box-shadow: none; }
.capability::before { display: block; content: ""; width: 23px; height: 23px; margin-bottom: 12px; background: #2f878b; mask: url("icons/fingerprint.svg") center / contain no-repeat; -webkit-mask: url("icons/fingerprint.svg") center / contain no-repeat; }
.capability:nth-child(2n)::before { background: #d36935; }
.capability:nth-child(3n)::before { background: #667aa9; }
.capability:nth-child(4)::before { mask-image: url("icons/scan-search.svg"); -webkit-mask-image: url("icons/scan-search.svg"); }
.capability:nth-child(6)::before { mask-image: url("icons/book-open.svg"); -webkit-mask-image: url("icons/book-open.svg"); }
.capability:nth-child(7)::before { mask-image: url("icons/map.svg"); -webkit-mask-image: url("icons/map.svg"); }
.capability:nth-child(8)::before { mask-image: url("icons/brain-circuit.svg"); -webkit-mask-image: url("icons/brain-circuit.svg"); }
.capability p { font-size: 12px; line-height: 1.8; color: #75808a; }
.researchReference { border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; margin: 28px 0; padding: 24px 0; box-shadow: none; }
.researchReferenceKicker { color: #257e83; }
.researchReferenceLinks a { background: white; color: #2f6979; border: 1px solid #c7d8df; border-radius: 5px; font-size: 12px; }
.techDeck { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.techPanel { border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
.featurePanel { grid-column: 1 / -1; }
.featureTitleGrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.featureChip { background: #fff; border-color: #dce2e7; border-radius: 5px; }
.featureChip span { background: #e2f0f0; color: #267b80; border-radius: 4px; }
.modelPill { background: #e6edf2; color: #435969; border-radius: 5px; box-shadow: none; border: 0; }
.sampleStat { background: transparent; border: 0; border-radius: 0; padding: 0; }
.sampleStat b { font-size: 22px; color: #263740; }
.metricGrid { gap: 18px; margin: 28px 0; }
.metric { border: 0; border-left: 3px solid #2c858a; background: #e9eeef; border-radius: 0; box-shadow: none; padding: 16px; }
.metric:nth-child(2) { border-color: #d36935; }
.metric:nth-child(3) { border-color: #688064; }
.metric:nth-child(4) { border-color: #667aa9; }
.metric .num { font-size: 27px; color: #29343e; }
.metric .label { color: #63717c; font-size: 11px; }
.productShowcase { border: 0; border-top: 1px solid var(--line); background: transparent; border-radius: 0; padding: 24px 0 0; margin: 28px 0 0; }
.productShot { background: white; border-color: #dce2e7; border-radius: 6px; box-shadow: none; }
.productShot img { aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border-bottom-color: #e0e5e9; }
.productShotBody h4 { font-size: 14px; }
.productShotBody p { font-size: 12px; color: #727d87; }
.testerModal { background: #14182099; backdrop-filter: blur(3px); }
.testerDialog { border-radius: 8px; background: white; border: 1px solid #dce2e7; box-shadow: 0 20px 60px #00000022; }
.testerDialog .languageSwitcher { background: #edf1f3; border-color: #dce1e5; }
.testerDialog .languageSwitcher button { color: #62717c; }
.testerDialog .languageSwitcher button.active { color: #b54b23; background: #fff; }
.authModeRow button.active, #saveTesterIdBtn { background: #d35424; border-color: #d35424; color: white; }
.historyDetail, .historyPlaceholder, .historyNotice, .adminDetail, .adminPanel { border-radius: 6px; background: #fff; border-color: #dce2e7; box-shadow: none; }
.historyItem { border-radius: 6px; background: #fff; border-color: #dce2e7; }
.historyItem.active { border-color: #2c858a; background: #eff7f7; }
.adminPanel { margin-bottom: 20px; }
.playerReportPanel { background: #f6f8f9; border-radius: 8px 0 0 8px; }
.resultSection, .profileCard, .coachCard, .verdictCard, .pairCard, .llmReportCard, .movementVizPanel, .tacticalPanel { border-radius: 6px; box-shadow: none; }
.resultCard, .caseCard, .playerReportCard, .profilePanel, .coachPanel { border-radius: 6px; }
.profileBlock, .reportSection, .coachSection, .playerReportSection { background: #fff; border-radius: 6px; }
.resultBlock.primaryCrossPairsBlock, .resultBlock.secondaryPairsBlock, .secondaryPairsBlock.groupAStability, .secondaryPairsBlock.groupBStability { border: 0; border-top: 1px solid #dce2e7; border-radius: 0; padding: 20px 0 0; background: transparent; }
.aggregateHero { background: transparent; border: 0; border-radius: 0; padding: 0; }
.aggregateScore { background: #2c6267; border-radius: 6px; }
.aggregateScore strong { font-size: 25px; line-height: 1.2; }
.aggregateScore span { color: #d6e8e9; font-size: 12px; }
.aggregateMini { background: #fff; border-color: #dce2e7; border-radius: 6px; }
.aggregateMini b { color: #52616c; }
.pairCard, .primaryCrossPairsBlock .pairCard, .secondaryPairsBlock .pairCard { border-color: #dce2e7; background: #fff; border-radius: 6px; }
.pairHeader, .primaryCrossPairsBlock .pairHeader, .secondaryPairsBlock .pairHeader { background: #edf1f4; border-color: #dce2e7; }
.demoMini { background: transparent; border: 0; border-radius: 0; padding: 0; }
.explainMini, .evidenceBox { background: transparent; border: 0; border-radius: 0; }
.bandScale { background: #f7f9fa; border-color: #dce2e7; border-radius: 6px; box-shadow: none; }
.bandScoreCard, .bandCurrentCard { border-radius: 5px; }
.bandCurrentCard { border-color: #dce2e7; background: #fff; }
.bandScoreCard b { font-size: 24px; }
.bandCurrentCard b { font-size: 17px; }
.bandSegment { border-radius: 5px; box-shadow: none; }
.bandSegment.current { outline-width: 2px; outline-offset: 2px; box-shadow: none; }
.bandSegment.current::after { border-radius: 3px; }
.demoMetaItem { background: #f1f5f7; border: 0; border-radius: 4px; }
.profileHeroPanel { background: #ecf3f4; border-color: #d5e2e5; border-radius: 6px; }
.profileStoryCard, .observationCard, .roleProfilePanel, .coachCard { border-color: #dce2e7; background: #fff; border-radius: 6px; }
.movementVizPanel { border-color: #dce2e7; background: #fff; border-radius: 6px; }
.llmReportBlock { border: 0; border-top: 1px solid #dce2e7; border-radius: 0; background: transparent; padding: 18px 0 0; }
.llmSummaryCard, .llmIssueCard, .llmDimensionCard, .llmBoundaryCard, .llmAbilityCard, .llmReviewCard, .llmHighValueCard, .llmEvidenceInventoryCard, .llmIndexBtn { background: #fff; border-radius: 6px; border-color: #dce2e7; }
.profileBtn, .profileBtn.coachBtn, .closeReportBtn { background: #fff; border: 1px solid #cdd7df; color: #3c5b6b; border-radius: 5px; }
.appToast { background: #fff; border-color: #d5e2e5; border-radius: 6px; box-shadow: 0 10px 28px #00000016; }
table { font-size: 12px; }
th { background: #edf1f4; }
td, th { border-color: #e0e5e9; }
main img, main canvas { max-width: 100%; }
main p, main h2, main h3, main h4, main td, .playerReportPanel { overflow-wrap: anywhere; }
@media (max-width: 1000px) {
  .userToolbar { gap: 0; }
  .accountTools { padding: 8px 0 12px; }
  .capabilityGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modeSegments button { min-width: 120px; padding: 8px 12px; }
}
@media (max-width: 680px) {
  header { padding: 20px 16px 0; }
  .brand { gap: 12px; grid-template-columns: 44px minmax(0, 1fr); }
  .brandMark { width: 44px; height: 56px; }
  .brandMark::before { inset: 8px 4px; }
  .brandKicker { font-size: 9px; line-height: 1.6; }
  header h1 { font-size: 20px; }
  .brandMeta { margin-top: 7px; gap: 4px 10px; }
  .signature, .lastUpdated { font-size: 10px; }
  .userToolbar { margin-top: 18px; display: flex; flex-direction: column-reverse; align-items: stretch; }
  .accountTools { justify-content: flex-start; gap: 10px; }
  .accountTools .languageSwitcher, .accountTools a { flex: 0 0 auto; }
  .testerBadge { flex: 1; min-width: 0; max-width: none; font-size: 11px; }
  .workspaceNavigation { gap: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .workspaceNavigation button { padding: 10px 4px; min-height: 48px; font-size: 11px; line-height: 1.45; overflow-wrap: normal; }
  main.grid { padding: 22px 16px; }
  .modeSegments { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
  .modeSegments button { min-width: 0; min-height: 40px; padding: 8px; font-size: 12px; }
  .singleAnalysisLayout, .multiAnalysisLayout { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .uploadPanel { padding: 16px; }
  .uploadPanelHeader .hint { min-height: 0; }
  .analysisOptionsPanel { flex-direction: column; gap: 16px; }
  .analysisOptionBox { width: 100%; }
  #statusSection { display: block; }
  #statusSection h2 { margin-bottom: 12px; }
  .techDeck, .featureTitleGrid { grid-template-columns: minmax(0, 1fr); }
  .capabilityGrid { gap: 10px; }
  .capability { padding: 14px 12px; }
  .capability strong { font-size: 13px; }
  .metricGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .metric { padding: 12px; }
  .metric .num { font-size: 22px; }
  .researchReference { display: block; }
  .researchReferenceLinks { margin-top: 14px; }
  .productShowcaseGrid { grid-template-columns: minmax(0, 1fr); }
  .historyWorkspace, .adminGrid { grid-template-columns: minmax(0, 1fr); }
  .historyHeader { align-items: start; flex-wrap: wrap; gap: 12px; }
  .adminToolbar { flex-wrap: wrap; }
  .adminToolbar label { width: 100%; min-width: 0; }
  .playerReportPanel { width: 100%; border-radius: 0; }
  .playerReportDrawer, .playerReportDrawer.isTacticalMap { grid-template-columns: minmax(0, 1fr); }
  .drawerBackdrop { display: none; }
  .playerReportPanel, .playerReportDrawer.isTacticalMap .playerReportPanel { padding: 18px 16px; }
  .playerReportHeader { gap: 8px; }
  .playerReportHeader h2 { font-size: 18px; }
  .llmAbilityGrid, .llmReviewGrid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition: none !important; scroll-behavior: auto !important; }
}
