:root { color-scheme: light; --ink:#172033; --muted:#6f7890; --line:#e5e9f2; --blue:#2f73ff; --blue-soft:#edf4ff; --bg:#f4f6fa; --danger:#c93b48; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; background:var(--bg); color:var(--ink); font:15px/1.45 Arial, sans-serif; }
button,input { font:inherit; }
.shell { width:min(1180px, 100%); margin:auto; padding:28px; }
.topbar { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:22px; }
.eyebrow,.subtitle,.status-card p { margin:0; color:var(--muted); }
.eyebrow { color:var(--blue); font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
h1 { margin:2px 0; font-size:30px; line-height:1.2; }
h2 { margin:3px 0 0; font-size:19px; }
.button { border:0; border-radius:9px; padding:10px 16px; background:var(--blue); color:#fff; cursor:pointer; font-weight:700; }
.button-secondary { background:#fff; color:var(--blue); box-shadow:0 1px 4px #1d31551a; }
.button:disabled { cursor:wait; opacity:.58; }
.status-card { min-height:128px; display:flex; gap:16px; align-items:center; justify-content:center; padding:26px; border:1px solid var(--line); border-radius:16px; background:#fff; text-align:left; }
.status-card.error strong { color:var(--danger); }
.spinner { width:22px; height:22px; flex:0 0 auto; border:3px solid #dce7ff; border-top-color:var(--blue); border-radius:50%; animation:spin .8s linear infinite; }
.error .spinner,.success .spinner { display:none; }
.status-card .button { margin-left:12px; }
@keyframes spin { to { transform:rotate(360deg); } }
.workspace { display:grid; grid-template-columns:minmax(280px, .85fr) minmax(360px, 1.4fr); gap:16px; min-height:560px; }
.panel { overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 10px 30px #1d31550a; }
.panel-heading { min-height:79px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); }
.panel-label { color:var(--muted); font-size:13px; font-weight:700; }
.count { display:inline-grid; min-width:28px; height:24px; margin-left:8px; place-items:center; border-radius:12px; background:var(--blue-soft); color:var(--blue); font-size:12px; }
.search input { width:150px; border:1px solid var(--line); border-radius:9px; padding:9px 11px; outline:none; }
.search input:focus { border-color:var(--blue); box-shadow:0 0 0 3px var(--blue-soft); }
.company-list { max-height:calc(100vh - 190px); min-height:480px; overflow:auto; padding:8px; }
.company { width:100%; display:flex; justify-content:space-between; gap:10px; padding:13px 12px; border:0; border-radius:10px; background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.company:hover,.company.active { background:var(--blue-soft); }
.company.active { color:#1556dc; }
.company-name { overflow:hidden; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.company-meta { flex:0 0 auto; color:var(--muted); font-size:12px; }
.contact-content { padding:18px; }
.contacts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }
.contact { padding:16px; border:1px solid var(--line); border-radius:12px; }
.contact-name { display:block; margin-bottom:3px; font-size:16px; }
.contact-position { min-height:21px; margin:0 0 12px; color:var(--muted); font-size:13px; }
.contact-link { display:block; overflow:hidden; margin-top:6px; color:#2865d7; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.empty { display:grid; min-height:310px; place-items:center; padding:28px; color:var(--muted); text-align:center; }
.mini-loader { display:flex; min-height:310px; gap:10px; align-items:center; justify-content:center; color:var(--muted); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
@media (max-width:720px) { .shell{padding:16px}.workspace{grid-template-columns:1fr}.company-list{min-height:220px;max-height:300px}.topbar{align-items:flex-start}h1{font-size:25px}.search input{width:130px}.status-card{flex-wrap:wrap}.status-card .button{margin-left:0} }
