:root{--bg: #f7f3f1;--paper: #fffdfa;--surface: #ffffff;--soft: #f1e9e6;--line: #ded2cc;--ink: #18211f;--muted: #6c625e;--wine: #642044;--wine-dark: #43122d;--green: #1d6b48;--amber: #9a641a;--red: #a23b3b;--blue: #255f85;--shadow: 0 16px 42px rgba(43, 28, 21, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:linear-gradient(135deg,#fbf8f4,#f3ece8 46%,#eef4f1);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.appShell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh}.sidebar{background:#fffdfaeb;border-right:1px solid var(--line);padding:22px 16px;position:sticky;top:0;height:100vh}.brand{align-items:center;display:flex;gap:12px;margin-bottom:26px}.brand>span{align-items:center;background:var(--wine);border-radius:8px;color:#fff;display:inline-flex;font-weight:900;height:42px;justify-content:center;width:42px}.brand strong{display:block;font-size:15px}.brand small{color:var(--muted);display:block;margin-top:2px}nav{display:grid;gap:6px}nav button{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:#554b47;display:flex;gap:10px;min-height:42px;padding:10px 12px;text-align:left}nav button.active,nav button:hover{background:#fff;border-color:var(--line);color:var(--wine);box-shadow:0 8px 22px #64204414}.sideStatus{border:1px solid var(--line);border-radius:8px;bottom:18px;left:16px;padding:14px;position:absolute;right:16px}.sideStatus span,.eyebrow{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sideStatus strong{display:block;margin:6px 0}.sideStatus small{color:var(--muted);line-height:1.4}main{min-width:0;padding:28px}.topbar{align-items:flex-start;display:flex;justify-content:space-between;gap:18px;margin-bottom:22px}h1,h2,h3,p{margin-top:0}h1{font-size:34px;letter-spacing:0;line-height:1.05;margin-bottom:0}h2{font-size:20px;margin-bottom:0}h3{font-size:15px;margin-bottom:10px}.primaryButton,.iconButton{align-items:center;background:var(--wine);border:1px solid var(--wine);border-radius:8px;color:#fff;display:inline-flex;gap:8px;justify-content:center;min-height:40px;padding:9px 13px}.iconButton{height:38px;padding:0;width:38px}.primaryButton:hover,.iconButton:hover{background:var(--wine-dark)}.viewStack{display:grid;gap:18px}.kpiGrid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.kpi,.panel,.drawer,.tableWrap{background:#fffdfaf0;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.kpi{display:flex;gap:14px;min-height:126px;padding:18px}.kpiIcon{align-items:center;background:#f2e6ed;border-radius:8px;color:var(--wine);display:inline-flex;height:40px;justify-content:center;width:40px}.kpi.good .kpiIcon{background:#e6f1ec;color:var(--green)}.kpi.mid .kpiIcon{background:#f6eedf;color:var(--amber)}.kpi.warn .kpiIcon{background:#f7e6e3;color:var(--red)}.kpi span{color:var(--muted);font-size:12px;font-weight:750}.kpi strong{display:block;font-size:30px;line-height:1;margin:8px 0}.kpi p{color:var(--muted);font-size:13px;line-height:1.35;margin:0}.panel{padding:18px}.panelHead{align-items:baseline;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;margin:-2px 0 16px;padding-bottom:12px}.panelHead span{color:var(--muted);font-size:13px}.split{display:grid;gap:18px;grid-template-columns:1fr 1fr}.topGrid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.topCard{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;gap:10px;min-height:150px;padding:14px;text-align:left}.topCard:hover{border-color:#b99aae;box-shadow:0 12px 28px #6420441a}.topCard strong{font-size:17px}.topCard>span:not(.badge){color:var(--muted);font-size:13px}.topCard div{display:flex;gap:14px}.score{align-items:baseline;display:inline-flex;gap:5px;min-width:54px}.score span{font-size:18px;font-weight:900}.score small{color:var(--muted);font-size:11px}.score .good{color:var(--green)}.score .mid{color:var(--amber)}.score .low{color:var(--red)}.badge{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;line-height:1;min-height:26px;padding:6px 9px;width:fit-content}.badge.good{background:#e8f3ec;border-color:#b8d8c4;color:var(--green)}.badge.mid{background:#f8efdf;border-color:#e2c992;color:var(--amber)}.badge.low,.badge.warn{background:#f8e8e5;border-color:#e4b7ae;color:var(--red)}.badge.neutral{background:#f4efec;color:#594d48}.barRow{align-items:center;display:grid;gap:12px;grid-template-columns:120px 1fr 34px;margin:12px 0}.barRow span,.compactItem span{color:var(--muted);font-size:13px}.barRow div{background:var(--soft);border-radius:99px;height:9px;overflow:hidden}.barRow i{background:var(--wine);display:block;height:100%}.compactItem{border-bottom:1px solid var(--line);display:grid;gap:5px;padding:11px 0}.filters{display:grid;gap:10px;grid-template-columns:minmax(260px,1fr) 170px 150px 150px}.searchBox{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:8px;padding:0 10px}.searchBox input,select{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:42px;outline:none;padding:0 11px;width:100%}.searchBox input{border:0;padding:0}.tableWrap{overflow:auto}table{border-collapse:collapse;min-width:980px;width:100%}th,td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:middle}th{background:#fbf7f3;color:var(--muted);font-size:12px;letter-spacing:.04em;position:sticky;text-transform:uppercase;top:0}.tableLink{background:transparent;border:0;color:var(--ink);display:grid;gap:3px;padding:0;text-align:left}.tableLink span{color:var(--muted);font-size:12px}.compareStrip{display:flex;flex-wrap:wrap;gap:8px}.compareStrip button{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:inline-flex;gap:10px;min-height:40px;padding:8px 10px}.companyCardGrid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.companyCard{background:#fffffff0;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;box-shadow:0 10px 26px #2b1c150d;display:grid;gap:12px;min-height:284px;padding:14px}.companyCard.hot{border-left-color:var(--green)}.companyCard.warm{border-left-color:var(--amber)}.companyCard.cold{border-left-color:#b25b5b}.companyCardHead{align-items:flex-start;display:grid;gap:10px;grid-template-columns:34px minmax(0,1fr) auto}.companyAvatar{align-items:center;background:#f1e5eb;border:1px solid #dfc7d3;border-radius:999px;color:var(--wine);display:inline-flex;font-size:12px;font-weight:900;height:34px;justify-content:center;padding:0;position:relative;overflow:hidden;width:34px}.companyAvatar span{position:relative;z-index:1}.companyAvatar.hasLogo{background:#fff;border-color:var(--line)}.companyAvatar.hasLogo span{color:transparent}.companyAvatar img{background:#fff;height:100%;top:0;right:0;bottom:0;left:0;object-fit:contain;padding:4px;position:absolute;width:100%}.companyIdentity{display:grid;gap:3px;min-width:0}.companyName{background:transparent;border:0;color:var(--ink);font-weight:850;line-height:1.2;overflow-wrap:anywhere;padding:0;text-align:left}.companyIdentity span{color:var(--muted);font-size:12px;line-height:1.25;overflow-wrap:anywhere}.companyQuality{border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.04em;padding:5px 7px;text-transform:uppercase;white-space:nowrap}.companyQuality.hot{background:#e9f4ee;border-color:#b8d8c7;color:var(--green)}.companyQuality.warm{background:#fff5e6;border-color:#e7c88e;color:var(--amber)}.companyQuality.cold{background:#fff0f0;border-color:#e6bbbb;color:var(--red)}.companyTags{display:flex;flex-wrap:wrap;gap:6px;min-height:26px}.companyScores{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.companyScores div{background:#faf6f2;border:1px solid var(--line);border-radius:8px;display:grid;gap:1px;min-height:54px;padding:8px 9px}.companyScores strong{font-size:20px;line-height:1}.companyScores span{color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}.companySignals{display:grid;gap:8px}.companySignals div{border-top:1px solid #eee3de;display:grid;gap:2px;padding-top:8px}.companySignals span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.companySignals strong{color:#3a332f;display:-webkit-box;font-size:12px;font-weight:700;line-height:1.32;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.companyCardFooter{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:auto}.compareCheck{align-items:center;color:var(--muted);display:inline-flex;font-size:12px;font-weight:750;gap:7px}.compareCheck input{accent-color:var(--wine)}.openButton{align-items:center;background:var(--wine);border:1px solid var(--wine);border-radius:8px;color:#fff;display:inline-flex;font-size:12px;font-weight:850;gap:6px;min-height:34px;padding:7px 10px}.rankingList{display:grid;gap:8px}.rankingList button{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;gap:10px;grid-template-columns:34px minmax(160px,1fr) minmax(130px,.8fr) 70px;min-height:54px;padding:8px 12px;text-align:left}.rankingList b{color:var(--wine)}.rankingList span{color:var(--muted);font-size:13px}.evidenceGrid,.exportGrid,.jobGrid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.evidenceCard,.exportCard,.jobCard{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;gap:9px;min-height:148px;padding:14px;text-decoration:none}.evidenceCard div{align-items:center;display:flex;justify-content:space-between}.evidenceCard span,.evidenceCard small,.jobCard span,.jobCard small,.eventList span,.eventList small,.exportCard span{color:var(--muted);font-size:12px}.evidenceCard p{color:#403936;font-size:13px;line-height:1.38;margin-bottom:0}.exportCard{align-items:center;grid-template-columns:28px 1fr auto 20px;min-height:72px}.exportCard.disabled{opacity:.45;pointer-events:none}.eventList{display:grid;gap:0}.eventList>div{border-bottom:1px solid var(--line);display:grid;gap:4px;padding:10px 0}.jobCard{min-height:120px}.drawer{bottom:0;max-width:520px;overflow:auto;padding:22px;position:fixed;right:0;top:0;width:min(520px,96vw);z-index:20}.drawerHead{align-items:start;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;margin-bottom:16px;padding-bottom:14px}.drawerHead h2{font-size:26px;line-height:1.1;margin-top:6px}.drawerScores{display:flex;gap:22px;margin-bottom:16px}.factGrid{display:grid;gap:10px;grid-template-columns:1fr 1fr}.factGrid div{background:#f8f3ef;border:1px solid var(--line);border-radius:8px;padding:12px}.factGrid span{color:var(--muted);display:block;font-size:12px;margin-bottom:5px}.factGrid strong{font-size:13px;line-height:1.3}.drawerSection{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.drawerSection p{color:#463d39;line-height:1.48;margin-bottom:8px}.muted{color:var(--muted)!important}.evidenceLink{border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;gap:4px;margin-bottom:8px;padding:10px;text-decoration:none}.evidenceLink span,.evidenceLink small{color:var(--muted);font-size:12px}.alert,.loading{align-items:center;background:#fff4ed;border:1px solid #ebc6ab;border-radius:8px;color:#7b3a13;display:flex;gap:10px;margin-bottom:16px;padding:12px 14px}.loading{background:#fff;color:var(--muted)}@media(max-width:1100px){.appShell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sideStatus{position:static;margin-top:16px}nav{grid-template-columns:repeat(3,1fr)}.kpiGrid,.topGrid,.companyCardGrid,.evidenceGrid,.exportGrid,.jobGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:1fr 1fr}}@media(max-width:720px){main{padding:18px}.topbar,.panelHead{align-items:flex-start;flex-direction:column}nav{grid-template-columns:1fr 1fr}.kpiGrid,.topGrid,.split,.companyCardGrid,.evidenceGrid,.exportGrid,.jobGrid,.factGrid,.filters{grid-template-columns:1fr}.rankingList button{grid-template-columns:28px 1fr 56px}.rankingList button span{display:none}.drawer{width:100vw}}
