:root{color-scheme:light;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,Inter,system-ui,-apple-system,sans-serif;--ink: #161b22;--muted: #5b6573;--faint: #8a94a3;--page: #f1f3f7;--surface: #ffffff;--line: #e3e7ee;--line-strong: #d3d9e2;--soft: #f4f6fa;--red: #d33a31;--red-dark: #b12a23;--red-soft: #fdecea;--green: #0f8c5f;--green-soft: #e3f6ed;--blue: #2274bd;--blue-soft: #e8f1fb;--gold: #b07d12;--gold-soft: #fdf2d6;--shadow-sm: 0 1px 2px rgba(22, 27, 34, .06), 0 2px 8px rgba(22, 27, 34, .05);--shadow-md: 0 10px 30px rgba(22, 27, 34, .08);--shadow-lg: 0 24px 60px rgba(22, 27, 34, .12);--radius: 16px;--radius-sm: 11px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;color:var(--ink);background:radial-gradient(900px 520px at 88% -8%,rgba(211,58,49,.1),transparent 60%),radial-gradient(760px 480px at -6% 0%,rgba(34,116,189,.08),transparent 58%),radial-gradient(640px 520px at 50% 120%,rgba(15,140,95,.07),transparent 60%),var(--page);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(34,116,189,.4);outline-offset:2px}h1,h2,p{margin-top:0}.appShell{min-height:100dvh;padding:24px 18px 56px}.appContainer{width:min(900px,100%);margin:0 auto;transition:width .28s cubic-bezier(.22,1,.36,1)}.appContainer.wide{width:min(1180px,100%)}.appHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 2px 18px}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brandMark{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:#fff;background:linear-gradient(150deg,var(--red),#e8635a);box-shadow:0 10px 22px #d33a3152}.brandText{min-width:0}h1{margin-bottom:3px;font-size:clamp(1.3rem,3vw,1.8rem);font-weight:900;line-height:1.1;letter-spacing:-.01em}.tagline{margin:0;color:var(--muted);font-size:clamp(.8rem,2vw,.92rem);line-height:1.4}.ghostButton{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 15px;border:1px solid var(--line-strong);border-radius:999px;background:#fffc;color:var(--muted);font-weight:700;font-size:.88rem;transition:color .16s ease,border-color .16s ease}.ghostButton:hover{color:var(--red);border-color:var(--red)}.stepRail{display:flex;align-items:center;margin:0 0 22px;padding:0;list-style:none}.stepItem{display:flex;align-items:center;flex:1;color:var(--faint);font-size:.86rem;font-weight:700}.stepItem:last-child{flex:none}.stepItem:not(:last-child):after{content:"";flex:1;height:2px;min-width:16px;margin:0 10px;border-radius:2px;background:var(--line-strong);transition:background .22s ease}.stepDot{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--soft);color:var(--faint);font-size:.8rem;font-weight:800;border:1px solid var(--line-strong);transition:background .22s ease,color .22s ease,border-color .22s ease}.stepLabel{margin-left:8px;white-space:nowrap}.step-active .stepDot{background:linear-gradient(150deg,var(--red),#c9322a);border-color:transparent;color:#fff;box-shadow:0 0 0 4px #d33a3129}.step-active .stepLabel{color:var(--ink)}.step-done .stepDot{background:var(--red);border-color:transparent;color:#fff}.step-done .stepLabel{color:var(--muted)}.step-done:not(:last-child):after{background:var(--red)}.stagePanel{display:grid;gap:18px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md)}.stageIntro{text-align:center;display:grid;gap:6px}.stageIntro h2{margin:0;font-size:1.35rem;font-weight:900;letter-spacing:-.01em}.stageIntro p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}.dropzone{position:relative;display:grid;place-items:center;align-content:center;gap:10px;min-height:220px;padding:24px;border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:linear-gradient(180deg,rgba(244,246,250,.5),var(--soft));text-align:center;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.dropzone:hover{border-color:var(--red);background:var(--red-soft);transform:translateY(-1px)}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzoneIcon{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:#fff;color:var(--red);box-shadow:var(--shadow-sm)}.dropzone strong{font-size:1.02rem}.dropzoneHint{color:var(--faint);font-size:.84rem}.cameraButton{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-height:50px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);font-weight:800;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}.cameraButton:hover{border-color:var(--red);color:var(--red)}.cameraButton svg{color:var(--red)}.cameraButton input{position:absolute;inset:0;opacity:0;cursor:pointer}.cameraHint{flex-basis:100%;text-align:center;color:var(--faint);font-size:.78rem;font-weight:500}.advancedRow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.advancedRow label,.manualEntry label{display:grid;gap:7px;color:var(--muted);font-size:.84rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface);color:var(--ink);transition:border-color .16s ease}input:hover,select:hover,textarea:hover{border-color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:var(--blue)}input,select{min-height:46px;padding:0 12px}.plateTextarea{min-height:120px;resize:vertical;padding:12px;line-height:1.6;word-break:break-word}.orDivider{display:flex;align-items:center;gap:14px;color:var(--faint);font-size:.84rem;font-weight:700}.orDivider:before,.orDivider:after{content:"";flex:1;height:1px;background:var(--line)}.manualPaths{display:grid;grid-template-columns:1fr 1fr;gap:12px}.manualEntry{display:grid;gap:12px}.primaryButton,.secondaryButton{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;border:1px solid transparent;font-weight:800;transition:transform .14s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}.primaryButton{background:linear-gradient(160deg,var(--red),#c9322a);color:#fff;box-shadow:0 10px 22px #d33a3147}.primaryButton:disabled{background:#dde2e9;color:#97a0ab;box-shadow:none}.primaryButton:not(:disabled):hover,.secondaryButton:hover{transform:translateY(-1px)}.primaryButton:not(:disabled):hover{background:linear-gradient(160deg,var(--red-dark),#b42b24)}.secondaryButton{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}.secondaryButton:hover{border-color:var(--red);color:var(--red)}.previewThumb{border-radius:var(--radius-sm);overflow:hidden;background:#0d1117}.previewThumb img{display:block;width:100%;max-height:240px;object-fit:contain}.stageMessage{display:grid;gap:12px}.stageActions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.errorText{margin:0;color:var(--red);font-size:.92rem;font-weight:700}.hintText{margin:0;color:var(--muted);font-size:.88rem}.loadingBlock{display:grid;place-items:center;gap:10px;padding:34px 16px;text-align:center}.loadingBlock strong{font-size:1.05rem}.loadingSubtitle{color:var(--muted);font-size:.9rem}.spinner{display:grid;place-items:center;color:var(--red);animation:spin .9s linear infinite}.loadingProgress{display:flex;align-items:center;gap:10px;width:min(280px,100%);color:var(--muted);font-size:.85rem;font-weight:700}progress{flex:1;width:100%;height:8px;border:none;border-radius:999px;background:var(--soft);accent-color:var(--red)}progress::-webkit-progress-bar{background:var(--soft);border-radius:999px}progress::-webkit-progress-value{background:var(--red);border-radius:999px}.loadingBar{width:min(280px,100%);height:8px;border-radius:999px;background:var(--soft);overflow:hidden}.loadingBar span{display:block;width:40%;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--red),#ef7268);animation:slide 1.2s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}.resultsStage{display:grid;gap:16px}.resultsHeader{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.scoreStrip{display:grid;grid-template-columns:repeat(3,minmax(96px,150px));gap:12px}.metric{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);box-shadow:var(--shadow-sm)}.metric svg{color:var(--red)}.metric span{font-size:.8rem;font-weight:600}.metric strong{color:var(--ink);font-size:1.7rem;line-height:1;letter-spacing:-.02em}.sourceBadge{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-size:.84rem;font-weight:800;box-shadow:var(--shadow-sm)}.source-done{background:var(--red-soft);color:var(--red)}.source-fallback,.source-idle,.source-loading{background:var(--soft);color:var(--muted)}.noticeText{margin:0;padding:11px 14px;border-radius:11px;background:var(--gold-soft);color:var(--gold);font-size:.88rem;font-weight:600}.resultImageCard{position:relative;border-radius:var(--radius);overflow:hidden;background:#0d1117;box-shadow:var(--shadow-sm)}.resultImageCard img{display:block;width:100%;max-height:300px;object-fit:contain}.recognizeBadge{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;background:#0d1117b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:.82rem;font-weight:700}.segmentControl{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:999px;background:var(--soft);border:1px solid var(--line)}.segment{min-height:40px;border:none;border-radius:999px;background:transparent;color:var(--muted);font-weight:800;font-size:.9rem;transition:color .16s ease,background .16s ease,box-shadow .16s ease}.segment.active{background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}.cardHeadLeft{display:inline-flex;align-items:center;gap:8px}.tierBadge{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 7px;border-radius:7px;font-size:.78rem;font-weight:900;letter-spacing:.04em;color:#fff}.tier-SSS{background:linear-gradient(150deg,#e0a020,#c9322a)}.tier-SS{background:linear-gradient(150deg,#ef7268,var(--red))}.tier-S{background:var(--red)}.tier-A{background:var(--green)}.tier-B{background:var(--blue)}.tier-C{background:#7b8593}.filterBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--faint)}.filterButton{min-height:40px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--muted);font-weight:700;white-space:nowrap;transition:transform .14s ease,color .16s ease,border-color .16s ease,background .16s ease;box-shadow:var(--shadow-sm)}.filterButton:hover{transform:translateY(-1px);color:var(--red);border-color:var(--red)}.filterButton.active{border-color:transparent;background:linear-gradient(160deg,var(--red),#c9322a);color:#fff;box-shadow:0 8px 18px #d33a3142}.resultsGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:start}.candidateCard{display:grid;gap:13px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.candidateCard:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.candidateCard.topPick{grid-column:1 / -1;border-color:#b07d1280;background:linear-gradient(180deg,var(--gold-soft),var(--surface) 40%);box-shadow:0 18px 44px #b07d1229}.cardHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.rankChip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;background:var(--soft);color:var(--faint);font-size:.76rem;font-weight:800;letter-spacing:.02em}.rankChip-top{background:linear-gradient(150deg,#f5cf6a,#d8a534);color:#5a3d05;box-shadow:0 4px 12px #b07d1252}.aiHeadline{display:inline-flex;align-items:center;gap:6px;width:max-content;margin:0;padding:5px 11px;border-radius:999px;background:var(--red-soft);color:var(--red);font-size:.86rem;font-weight:800}.aiHeadline svg{flex:none}.tagRow{display:flex;flex-wrap:wrap;gap:7px}.tag{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.tag-excellent{background:var(--red-soft);color:var(--red)}.tag-good{background:var(--green-soft);color:var(--green)}.tag-neutral{background:var(--blue-soft);color:var(--blue)}.tag-caution{background:var(--gold-soft);color:var(--gold)}.cultureNote{margin:0;color:#3a434d;font-size:.92rem;line-height:1.65}.candidateCard:not(.topPick) .cultureNote{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}.plateImage{width:100%;border-radius:9px;overflow:hidden;aspect-ratio:44 / 14;box-shadow:0 2px 10px #161b2229,inset 0 0 0 1px #0000001f}.plateImage.plate-md{max-width:340px}.plateImage.plate-lg{max-width:460px}.plateImage-blue{background:linear-gradient(180deg,#1a4bb0,#001b6f)}.plateImage-green{aspect-ratio:48 / 14;background:linear-gradient(180deg,#f6fdf8,#d6f3df 50%,#52c887)}.plateImage canvas{display:block;width:100%;height:100%}.plateImage:not(.is-ready) canvas{visibility:hidden}.scoreGauge{position:relative;flex:none;display:grid;place-items:center}.scoreGauge svg{width:100%;height:100%;transform:rotate(-90deg)}.gaugeTrack{fill:none;stroke:var(--soft);stroke-width:6}.gaugeFill{fill:none;stroke:var(--gaugeColor, var(--blue));stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1)}.gaugeValue{position:absolute;display:grid;justify-items:center;gap:1px;line-height:1}.gaugeValue strong{font-size:1.45rem;font-weight:900;letter-spacing:-.02em;color:var(--ink)}.gaugeValue span{font-size:.64rem;font-weight:800;color:var(--gaugeColor, var(--muted))}.scoreGauge.level-必看,.scoreGauge.level-优先{--gaugeColor: var(--red)}.scoreGauge.level-可选{--gaugeColor: var(--green)}.scoreGauge.level-备选{--gaugeColor: var(--blue)}.scoreGauge.level-普通{--gaugeColor: #7b8593}.emptyState{grid-column:1 / -1;min-height:240px;display:grid;place-items:center;align-content:center;gap:12px;border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--faint)}.emptyState svg{color:var(--line-strong)}.emptyState p{margin:0;font-weight:800;color:var(--muted)}@media(max-width:560px){.appShell{padding:16px 12px 40px}.stagePanel{padding:18px}.advancedRow,.manualPaths,.stageActions{grid-template-columns:1fr}.stepLabel{display:none}.stepItem{flex:1}.scoreStrip{grid-template-columns:repeat(3,1fr)}.resultsHeader{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
