:root{--brand-50:#eef4fd;--brand-100:#dce8fb;--brand-200:#bcd3f7;--brand-300:#8fb4f1;--brand-400:#5a8eea;--brand-500:#2563eb;--brand-600:#1d56d6;--brand-700:#1a45ad;--bg:#f2f3f5;--surface:#fff;--surface-2:#f7f8fa;--press:#f0f1f3;--text:#1a1a1f;--text-2:#4a4d57;--text-muted:#8a8f9a;--text-subtle:#b0b4bd;--border:#e6e7ea;--border-strong:#d9dbe0;--hairline:#0000000f;--success:#07c160;--success-bg:#e8f7ee;--success-tx:#0a9a52;--warning:#fa9d3b;--warning-bg:#fdf2e3;--warning-tx:#b9700c;--danger:#fa5151;--danger-bg:#fdecec;--danger-tx:#c93434;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-pop:0 8px 30px #0000001f, 0 2px 8px #0000000f;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,system-ui,Inter,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px}a{color:inherit;text-decoration:none}::selection{background:#2563eb29}body{min-width:320px;color:var(--text);background:var(--bg)}@media (prefers-reduced-motion:reduce){*,:before{animation:none!important}}.phone-shell{z-index:1;width:min(100%,430px);min-height:100vh;padding:calc(16px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));margin:0 auto;position:relative}h1,h2,p{margin:0}.topbar{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:6px 0 18px;display:grid}.topbar-spacer{width:90px}.topbar>div:nth-child(2){text-align:center}.topbar-actions{align-items:center;gap:2px;display:inline-flex}.topbar-actions .icon-btn.active{color:var(--brand-600);background:var(--brand-50);border-radius:var(--r-sm)}.history-empty{color:var(--text-muted);text-align:center;padding:14px 4px;font-size:13px;line-height:1.5}.topbar span{color:var(--text-muted);font-size:12px;line-height:1.2;display:block}.topbar strong{color:var(--text);margin-top:2px;font-size:16px;font-weight:600;line-height:1.2;display:block}.icon-btn{border-radius:var(--r-sm);width:44px;height:44px;min-height:44px;color:var(--brand-600);background:0 0;border:0;justify-content:center;align-items:center;transition:background .15s,opacity .15s;display:inline-flex}.icon-btn:active{opacity:.5}.icon-btn:disabled{color:var(--text-subtle);background:0 0}.search-panel,.panel,.company-card,.loading-card,.notice-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.search-panel{padding:16px}.hero-title{grid-template-columns:34px 1fr;align-items:center;gap:12px;margin-bottom:16px;display:grid}.hero-title svg{color:var(--brand-500)}.hero-title h1{letter-spacing:-.01em;color:var(--text);font-size:20px;font-weight:700;line-height:1.25}.hero-title p{color:var(--text-muted);margin-top:5px;font-size:13px;line-height:1.45}.search-form{gap:10px;display:grid}.search-form label{border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);min-height:50px;color:var(--text-muted);grid-template-columns:24px 1fr;align-items:center;gap:10px;padding:0 14px;transition:border-color .15s;display:grid}.search-form label:focus-within{border-color:var(--brand-400)}.search-form label svg{color:var(--brand-500)}.search-form input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0;font-size:16px}.search-form input::placeholder{color:var(--text-subtle)}.search-form button{border-radius:var(--r-lg);color:#fff;background:var(--brand-500);border:0;justify-content:center;align-items:center;gap:8px;width:100%;min-height:50px;font-size:16px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.search-form button:active{background:var(--brand-600)}.search-form button:disabled{opacity:.5}.error-banner{border-radius:var(--r-sm);min-height:44px;color:var(--danger-tx);background:var(--danger-bg);align-items:center;margin-top:12px;padding:11px 13px;font-size:13px;line-height:1.5;display:flex}.share-toast{left:50%;top:calc(64px + env(safe-area-inset-top));z-index:20;border-radius:var(--r-sm);color:#fff;min-height:38px;box-shadow:var(--shadow-pop);background:#000000c7;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex;position:fixed;transform:translate(-50%)}.panel{margin-top:14px;padding:14px}.panel-title{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-title div{align-items:baseline;gap:8px;display:flex}.panel-title span{color:var(--text);font-size:17px;font-weight:600}.panel-title strong{color:var(--brand-600);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.candidate-list{gap:8px;display:grid}.candidate-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);text-align:left;grid-template-columns:1fr 18px;align-items:center;gap:10px;width:100%;min-height:64px;padding:11px 12px;transition:background .15s;display:grid}.candidate-row:active{background:var(--press)}.candidate-row svg{color:var(--text-subtle)}.candidate-row strong,.qual-card summary strong,.qual-card.static strong{color:var(--text);word-break:break-word;font-size:14px;font-weight:600;line-height:1.35;display:block}.candidate-row span,.qual-card summary span,.qual-card.static span{color:var(--text-muted);word-break:break-word;margin-top:4px;font-size:12px;line-height:1.35;display:block}.history-row-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--danger);position:relative;overflow:hidden}.history-row-wrap .history-delete-btn{background:var(--danger);color:#fff;z-index:0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:72px;min-height:0;padding:0;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;right:0}.history-row-wrap .history-delete-btn:disabled{opacity:.6}.history-face{z-index:1;background:var(--surface);text-align:left;touch-action:pan-y;border:0;border-radius:0;grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;min-height:68px;padding:14px;transition:transform .34s cubic-bezier(.34,1.4,.5,1),background .15s;display:grid;position:relative}.history-face:active{background:var(--press)}.history-face svg{color:var(--text-subtle)}.history-face strong{color:var(--text);word-break:break-word;font-size:14px;font-weight:600;line-height:1.35;display:block}.history-face span{color:var(--text-muted);word-break:break-word;margin-top:4px;font-size:12px;line-height:1.35;display:block}.loading-card{text-align:center;align-content:center;place-items:center;gap:10px;min-height:210px;margin-top:14px;padding:30px 18px;animation:.5s cubic-bezier(.34,1.4,.5,1) both card-rise;display:grid}@keyframes card-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.loading-card svg{color:var(--brand-500)}.loading-card strong{color:var(--text);font-size:20px;font-weight:600}.loading-card span{color:var(--text-muted);font-size:14px}.company-card{grid-template-columns:1fr 46px;align-items:center;gap:12px;margin-top:14px;padding:18px;animation:.5s cubic-bezier(.34,1.4,.5,1) both card-rise;display:grid}.company-card span{color:var(--text-muted);font-size:12px}.company-card h2{color:var(--text);word-break:break-word;margin:4px 0;font-size:22px;font-weight:700;line-height:1.2}.company-card p{color:var(--text-muted);font-size:13px;line-height:1.45}.company-card svg{color:var(--brand-500)}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.stat-card{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);flex-direction:column;justify-content:space-between;min-height:74px;padding:14px 12px;display:flex}.stat-card span{color:var(--text-muted);font-size:12px;font-weight:500;line-height:1.25}.stat-card strong{color:var(--text);letter-spacing:-.02em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;line-height:1.15}.hit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.hit-card{border:1px solid var(--brand-100);border-radius:var(--r-md);background:var(--brand-50);flex-direction:column;justify-content:space-between;gap:6px;min-height:58px;padding:10px;display:flex}.hit-card span{color:var(--text-2);word-break:break-word;font-size:12px;line-height:1.28}.hit-card strong{color:var(--brand-600);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;line-height:1.1}.info-table{gap:0;display:grid}.info-row{border-top:1px solid var(--hairline);grid-template-columns:112px 1fr;align-items:center;gap:12px;min-height:48px;padding:12px 0;display:grid}.info-row:first-child{border-top:0}.info-row span{color:var(--text-muted);font-size:13px}.info-row strong{min-width:0;color:var(--text);word-break:break-word;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:1.45}.qual-list{gap:8px;display:grid}.qual-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.qual-card summary{cursor:pointer;grid-template-columns:1fr 18px;align-items:center;gap:10px;min-height:58px;padding:11px 12px;list-style:none;transition:background .15s;display:grid}.qual-card summary:active{background:var(--press)}.qual-card summary svg{color:var(--text-subtle);transition:transform .15s}.qual-card.static{align-items:center;min-height:58px;padding:11px 12px;display:flex}.qual-card summary::-webkit-details-marker{display:none}.qual-card[open] summary svg{transform:rotate(180deg)}.qual-detail{padding:0 12px 6px}.qual-detail .info-row{grid-template-columns:84px 1fr}.qual-detail .info-row span,.qual-detail .info-row strong{font-size:12px}.empty-panel{text-align:center;align-content:center;place-items:center;gap:10px;min-height:180px;display:grid}.empty-panel svg{color:var(--brand-300)}.empty-panel strong{color:var(--text);font-size:17px;font-weight:600}.empty-panel span,.notice-panel p{color:var(--text-muted);font-size:13px;line-height:1.55}.notice-panel strong{color:var(--text);margin-bottom:6px;font-size:15px;font-weight:600;display:block}@property --p{syntax:"<percentage>";inherits:false;initial-value:0%}.progress-ring{--p:0%;background:conic-gradient(from -90deg, var(--brand-500) var(--p), #e6e8ec 0);border-radius:50%;place-items:center;width:122px;height:122px;margin:0 auto;transition:--p .65s cubic-bezier(.4,0,.2,1);display:grid;position:relative}.progress-ring:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:11px}.progress-ring span{z-index:1;color:var(--text);font-size:24px;font-weight:700;position:relative}.progress-ring:before{content:"";border:2px solid var(--brand-400);pointer-events:none;border-radius:50%;animation:1.9s ease-out infinite ring-pulse;position:absolute;inset:-7px}@keyframes ring-pulse{0%{opacity:.55;transform:scale(.9)}80%,to{opacity:0;transform:scale(1.16)}}.progress-ring.indeterminate{background:conic-gradient(from 0deg, var(--brand-500) 0 25%, #e6e8ec 25%);animation:.9s linear infinite ring-spin}@keyframes ring-spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=360px){.phone-shell{padding-left:12px;padding-right:12px}.info-row{grid-template-columns:94px 1fr}.qual-detail .info-row{grid-template-columns:74px 1fr}.stat-card strong{font-size:19px}.hit-grid{grid-template-columns:1fr}}@media (width>=720px){body{background:#e9eaed;padding:28px 0}.phone-shell{background:var(--bg);min-height:calc(100vh - 56px);box-shadow:var(--shadow-pop);border-radius:24px;margin:0 auto}}.portal-fab{top:calc(8px + env(safe-area-inset-top));z-index:8;height:44px;color:var(--brand-600,#1d56d6);border-radius:var(--r-sm,8px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;gap:2px;padding:0 8px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex;position:fixed;left:8px}.portal-fab:active{opacity:.5}.fn-tabbar{background:var(--surface,#fff);border-top:1px solid var(--border,#e6e7ea);width:min(100%,430px);padding-bottom:env(safe-area-inset-bottom);z-index:30;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.fn-tab{color:var(--text-muted,#8a8f9a);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 0 7px;font-size:11px;text-decoration:none;display:flex}.fn-tab.active{color:var(--brand-500,#2563eb)}.fn-tab:active{opacity:.6}.primary-btn,.secondary-btn,.soft-btn,.download-btn,.upload-zone,.upload-card{border-radius:var(--r-lg)}
