.company-reputation-page { min-height:calc(100vh - 82px); padding:34px clamp(24px,3vw,48px) 72px; background:#fff; }
.reputation-manager,.reputation-preview { width:100%; margin-top:30px; border:1px solid var(--cab-line-strong); border-radius:12px; background:#fff; }
.reputation-manager > header,.reputation-preview > header { padding:22px 28px; border-bottom:1px solid var(--cab-line); }
.reputation-manager h2,.reputation-preview h2 { margin:0; color:var(--cab-ink); font-size:27px; }
.reputation-manager header p,.reputation-preview header p { margin:7px 0 0; color:var(--cab-copy); font-size:15px; }
.reputation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.source-card { padding:26px 28px; min-width:0; }
.source-card + .source-card { border-left:1px solid var(--cab-line); }
.source-card > header { display:flex; align-items:center; gap:14px; }
.source-logo { display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--cab-line-strong); border-radius:10px; color:#4285f4; font-size:23px; font-weight:750; }
.source-logo.is-2gis { color:#12a85b; }
.source-card h3 { margin:0; color:var(--cab-ink); font-size:21px; }
.source-card header p { margin:4px 0 0; color:var(--cab-muted); font-size:14px; font-weight:650; }
.source-card[data-state="connected"] header p { color:var(--cab-success); }
.source-card[data-state="error"] header p,.source-card[data-state="mismatch"] header p { color:var(--cab-danger); }
.source-form { display:grid; grid-template-columns:minmax(0,1fr) auto; margin-top:24px; align-items:end; gap:10px; }
.source-form label { display:grid; min-width:0; gap:8px; color:var(--cab-ink); font-size:15px; font-weight:650; }
.source-form input { width:100%; height:48px; padding:0 13px; border:1px solid var(--cab-line-strong); border-radius:8px; color:var(--cab-ink); font:400 15px/1.3 'Finlandica Text',sans-serif; }
.source-form button,.source-details button { min-height:48px; padding:0 16px; border:1px solid var(--cab-line-strong); border-radius:8px; background:#fff; color:var(--cab-ink); font:650 15px/1 'Finlandica Text',sans-serif; cursor:pointer; }
.source-card[data-state="matched"] .source-form button { border-color:var(--cab-brand); background:var(--cab-brand); color:#fff; }
.source-card[data-state="connected"] .source-form button { color:var(--cab-danger); }
.source-form input:focus,.source-form button:focus-visible,.source-details button:focus-visible { outline:2px solid var(--cab-brand); outline-offset:2px; }
.source-form input:disabled { background:var(--cab-surface); color:var(--cab-muted); }
.source-error { min-height:20px; margin:10px 0 0; color:var(--cab-danger); font-size:14px; }
.source-details { margin-top:20px; padding-top:20px; border-top:1px solid var(--cab-line); }
.source-details dl { display:grid; margin:0; gap:0; }
.source-details dl div { display:grid; grid-template-columns:120px minmax(0,1fr); padding:10px 0; gap:14px; border-bottom:1px solid var(--cab-line); }
.source-details dt { color:var(--cab-muted); font-size:13px; font-weight:650; }
.source-details dd { margin:0; color:var(--cab-ink); font-size:15px; font-weight:600; }
.source-details > button { margin-top:16px; }
.rating-source-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.rating-source-list article { display:grid; min-height:104px; padding:24px 28px; align-content:center; gap:8px; border-right:1px solid var(--cab-line); }
.rating-source-list article:last-child { border-right:0; }
.rating-source-list article[hidden] { display:none; }
.rating-source-list strong { color:var(--cab-ink); font-size:18px; }
.rating-source-list span { color:var(--cab-copy); font-size:16px; }
.company-reputation-page .company-completion { max-width:none; }
@media (max-width:1180px) { .company-reputation-page { padding:26px 24px 54px; } .reputation-grid { grid-template-columns:1fr; } .source-card + .source-card { border-top:1px solid var(--cab-line); border-left:0; } }
@media (max-width:640px) { .reputation-manager > header,.reputation-preview > header,.source-card { padding:20px; } .source-form { grid-template-columns:1fr; } .source-form button { width:100%; } .source-details dl div { grid-template-columns:1fr; gap:4px; } .rating-source-list { grid-template-columns:1fr; } .rating-source-list article { border-right:0; border-bottom:1px solid var(--cab-line); } }
