*{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0f172a;background:#f4f6fb}a{color:#1d4ed8;text-decoration:none}button,input,select{font:inherit}.cabinet-body{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#0f172a;color:#fff;padding:26px 18px;z-index:10}.logo{font-weight:900;font-size:20px}.logo-subtitle{color:#94a3b8;font-size:12px;margin:5px 0 28px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{color:#cbd5e1;padding:11px 13px;border-radius:10px;font-weight:700}.sidebar nav a:hover,.sidebar nav a.is-active{background:#1e293b;color:#fff}.cabinet-shell{margin-left:238px;min-height:100vh}.topbar{height:64px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.user-badge{font-size:13px;color:#64748b}.page-wrap{padding:28px;max-width:1700px;margin:auto}.hero{padding:31px;background:linear-gradient(135deg,#172554,#1d4ed8);border-radius:20px;color:#fff;margin-bottom:22px}.hero.compact{padding:24px 28px}.hero h1{font-size:32px;margin:4px 0 8px}.hero p{margin:0;color:#dbeafe;line-height:1.5}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:#bfdbfe}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:17px;padding:20px;margin-bottom:18px;box-shadow:0 7px 25px rgba(15,23,42,.035)}.panel h2{margin:0 0 16px;font-size:18px}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px}.metric-label{font-size:12px;color:#64748b;font-weight:800}.metric-value{font-size:29px;font-weight:900;margin:7px 0 4px;font-variant-numeric:tabular-nums}.metric-note{font-size:12px;color:#64748b}.section-title{display:flex;align-items:end;justify-content:space-between;margin:28px 2px 12px}.section-title h2{margin:0}.section-title span{font-size:12px;color:#64748b}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.breakdown-item{display:flex;align-items:center;justify-content:space-between;border:1px solid #e2e8f0;border-radius:12px;padding:11px 13px}.breakdown-item strong{font-size:18px}.progress{height:12px;border-radius:99px;background:#e2e8f0;overflow:hidden;margin:10px 0}.progress>div{height:100%;background:#2563eb}.progress-head,.probe-row,.table-head,.filter-actions,.pager{display:flex;align-items:center;justify-content:space-between;gap:12px}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:800}.status-ok,.status-active,.status-ready{background:#dcfce7;color:#166534}.status-running,.status-pending,.status-activating{background:#dbeafe;color:#1d4ed8}.status-failed,.status-http_error,.status-dns_error,.status-tls_error,.status-timeout,.status-error{background:#fee2e2;color:#991b1b}.status-inactive{background:#f1f5f9;color:#475569}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid #e2e8f0;vertical-align:top;text-align:left}.data-table th{background:#f8fafc;color:#475569;font-size:11px;text-transform:uppercase;letter-spacing:.035em;position:sticky;top:0}.click-row{cursor:pointer}.click-row:hover{background:#f8fbff}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.muted{color:#64748b}.small{font-size:12px}.tiny{font-size:11px}.error-text{color:#b91c1c}.empty-state{text-align:center;padding:36px!important;color:#64748b}.filters-panel{padding-bottom:16px}.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.filters-grid label{display:block}.filters-grid label span{display:block;font-size:11px;color:#64748b;font-weight:800;margin-bottom:5px}.filters-grid input,.filters-grid select,.login-card input{width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:10px 11px;outline:none}.filters-grid input:focus,.filters-grid select:focus,.login-card input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.span-2{grid-column:span 2}.filter-actions{justify-content:flex-end;margin-top:14px}.btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:10px;padding:9px 14px;font-weight:800;cursor:pointer}.btn:hover{background:#f8fafc}.btn.primary{background:#2563eb;border-color:#2563eb;color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.wide{width:100%}.pager{justify-content:center;margin-top:16px}.categories-cell{max-width:330px;line-height:1.45}.url-cell{max-width:250px;word-break:break-all}.back-link{display:inline-block;margin-bottom:12px;font-weight:700}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.narrow{max-width:500px}.loading-panel{text-align:center;color:#64748b}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:420px;background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:28px;box-shadow:0 18px 55px rgba(15,23,42,.1)}.login-card h1{margin:10px 0 7px}.login-card p{color:#64748b;margin:0 0 22px}.login-card label{display:block;margin-bottom:15px}.login-card label span{display:block;font-size:12px;font-weight:800;margin-bottom:5px}.login-badge{display:inline-block;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.login-error,.error-panel{background:#fff1f2;color:#991b1b;border:1px solid #fecdd3;border-radius:10px;padding:10px;margin-bottom:15px}.toast{position:fixed;right:24px;bottom:24px;background:#111827;color:#fff;padding:13px 16px;border-radius:12px}.filter-actions{display:flex}.data-table td ul{margin:0;padding-left:18px}
@media(max-width:1200px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.filters-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.sidebar{position:static;width:auto}.sidebar nav{flex-direction:row;overflow:auto}.cabinet-shell{margin-left:0}.topbar{padding:0 14px}.page-wrap{padding:16px}.metrics-grid,.two-col,.detail-grid,.filters-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.hero h1{font-size:27px}.breakdown-grid{grid-template-columns:1fr}}
/* v3: live dashboard, fast interactive filters */
.live-strip{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:13px;padding:10px 14px;margin:-6px 0 18px;font-size:12px}.live-dot{width:9px;height:9px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.12);animation:livePulse 1.8s infinite}.live-time{margin-left:auto;color:#64748b}.live-pulse{animation:dashboardFlash .35s ease}.section-title>div>p,.panel-heading p{margin:4px 0 0;color:#64748b;font-size:12px;line-height:1.5}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.panel-heading h2{margin-bottom:0}.metrics-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.status-breakdown-grid{display:grid;gap:9px}.status-breakdown{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e2e8f0;border-radius:12px;padding:11px 13px}.status-breakdown strong{font-size:20px;white-space:nowrap}.metric-good{color:#15803d}.metric-warning{color:#b45309}.index-ok{color:#15803d;margin-top:3px}.index-warning{color:#b45309;margin-top:3px}.query-indicator{min-width:145px;text-align:right;color:#64748b;font-size:12px}.mini-spinner{display:inline-block;width:12px;height:12px;border:2px solid #cbd5e1;border-top-color:#2563eb;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}.autocomplete{position:relative}.autocomplete input{padding-right:30px}.autocomplete-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);max-height:280px;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:11px;box-shadow:0 14px 35px rgba(15,23,42,.16);z-index:40;padding:5px}.autocomplete-menu.open{display:block}.autocomplete-item{display:block;width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:7px;cursor:pointer;color:#0f172a}.autocomplete-item:hover,.autocomplete-item.active{background:#eff6ff;color:#1d4ed8}.autocomplete-empty{padding:11px;color:#64748b;font-size:12px}.status-connection_error,.status-connection_refused,.status-redirect_error,.status-invalid_url,.status-blocked_address{background:#fee2e2;color:#991b1b}.status-unknown{background:#f1f5f9;color:#475569}.status-completed,.status-success{background:#dcfce7;color:#166534}.filters-panel{overflow:visible}.filters-grid{overflow:visible}.filters-grid label{min-width:0}.data-table tbody tr{transition:background .15s ease}.panel,.metric-card{transition:box-shadow .2s ease,transform .2s ease}@keyframes livePulse{0%,100%{opacity:1}50%{opacity:.45}}@keyframes dashboardFlash{0%{opacity:.92}100%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1200px){.metrics-grid-2{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.live-time{width:100%;margin-left:18px}.metrics-grid-2{grid-template-columns:1fr}.filter-actions{align-items:flex-start;flex-direction:column}.filter-actions>div{width:100%;display:flex;gap:8px}.filter-actions .btn{flex:1}.autocomplete-menu{position:fixed;left:16px;right:16px;top:auto;max-height:40vh}}

/* v4: manager dashboard + richer filters */
.manager-status{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid #dbe3ef;border-radius:18px;padding:20px 22px;margin-bottom:18px}.manager-status.good{border-left:5px solid #16a34a}.manager-status.warning{border-left:5px solid #d97706}.manager-status h2{margin:3px 0 6px;font-size:23px}.manager-status p{margin:0;color:#64748b}.manager-status-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#64748b}.live-pill{display:inline-flex;align-items:center;gap:8px;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;white-space:nowrap}
.metric-card.metric-good{border-color:#bbf7d0;background:#fbfffc}.metric-card.metric-warning{border-color:#fed7aa;background:#fffdf8}.manager-grid .metric-value{font-size:25px}.value-flash{animation:valueFlash .45s ease}.explain-panel{padding:22px}.explain-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.explain-item{border:1px solid #e2e8f0;border-radius:14px;padding:15px;background:#f8fafc}.explain-item.accent{background:#eff6ff;border-color:#bfdbfe}.explain-item strong{display:block;font-size:28px;margin-bottom:5px}.explain-item span{display:block;font-weight:800;font-size:13px;margin-bottom:7px}.explain-item small{display:block;color:#64748b;line-height:1.45}.summary-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.summary-chips span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:7px 10px;font-size:12px}.summary-chips .chip-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.progress.large{height:15px}.good-empty{color:#15803d!important}.technical-details{margin-top:22px;border:1px solid #dbe3ef;border-radius:16px;background:#fff;overflow:hidden}.technical-details>summary{cursor:pointer;list-style:none;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-weight:800}.technical-details>summary::-webkit-details-marker{display:none}.technical-details>summary:after{content:'⌄';font-size:20px;color:#64748b}.technical-details[open]>summary:after{content:'⌃'}.technical-details>summary small{font-weight:500;color:#64748b}.technical-body{padding:0 18px 18px;background:#f8fafc}.technical-body .panel{box-shadow:none;margin-top:14px;margin-bottom:0}
.filters-panel{border-color:#dbeafe;background:#fff}.filters-grid label>span{display:block;margin-bottom:7px;font-size:12px;font-weight:900;color:#334155}.filters-grid input,.filters-grid select{width:100%;height:44px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;color:#0f172a;padding:0 13px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.filters-grid input:hover,.filters-grid select:hover{border-color:#94a3b8;background:#fcfdff}.filters-grid input:focus,.filters-grid select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.filters-grid input::placeholder{color:#94a3b8}.select-shell{position:relative}.select-shell:after{content:'⌄';position:absolute;right:13px;top:50%;transform:translateY(-55%);pointer-events:none;color:#64748b;font-weight:900}.select-shell select{appearance:none;padding-right:34px;cursor:pointer}.autocomplete:after{content:'⌕';position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#64748b;pointer-events:none}.autocomplete input{padding-right:35px!important}.autocomplete-menu{top:calc(100% + 7px)!important;border:1px solid #bfdbfe!important;border-radius:14px!important;box-shadow:0 18px 45px rgba(15,23,42,.18)!important;padding:7px!important;background:#fff!important}.autocomplete-item{display:flex!important;align-items:center;width:100%!important;min-height:40px;border:0!important;background:transparent!important;color:#0f172a!important;text-align:left!important;padding:9px 11px!important;border-radius:9px!important;font-weight:650;cursor:pointer}.autocomplete-item:before{content:'›';color:#94a3b8;margin-right:8px;font-weight:900}.autocomplete-item:hover,.autocomplete-item.active{background:#eff6ff!important;color:#1d4ed8!important}.autocomplete-item:hover:before,.autocomplete-item.active:before{color:#2563eb}.autocomplete-empty{padding:14px!important;color:#64748b!important;background:#f8fafc;border-radius:9px}.filter-actions{margin-top:16px;padding-top:14px;border-top:1px solid #e2e8f0}.btn{border-radius:11px!important;padding:9px 14px!important;font-weight:800!important}.btn.primary{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important}.btn.primary:hover{background:#1d4ed8!important}.query-indicator{display:flex;justify-content:flex-end;align-items:center;gap:6px}
@keyframes valueFlash{0%{opacity:.45}100%{opacity:1}}
@media(max-width:1200px){.explain-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.manager-status{align-items:flex-start;flex-direction:column}.explain-grid{grid-template-columns:1fr}.technical-details>summary{align-items:flex-start;flex-direction:column}}
.status-warning{background:#ffedd5;color:#9a3412}.metric-card.metric-good{color:#0f172a}.metric-card.metric-good .metric-value{color:#15803d}.metric-card.metric-warning{color:#0f172a}.metric-card.metric-warning .metric-value{color:#b45309}

/* v5: full searchable directories for city/category hierarchy */
.searchable-select:after{display:none!important}.searchable-select input{padding-right:44px!important}.autocomplete-toggle{position:absolute;right:4px;top:4px;width:36px;height:36px;border:0;border-left:1px solid #e2e8f0;background:transparent;color:#475569;border-radius:0 9px 9px 0;font-size:20px;line-height:1;cursor:pointer;z-index:2}.autocomplete-toggle:hover{background:#eff6ff;color:#1d4ed8}.autocomplete-toggle:focus{outline:2px solid #93c5fd;outline-offset:-2px}.autocomplete-menu{max-height:390px!important;padding:0!important;overflow:auto!important;overscroll-behavior:contain}.autocomplete-summary{position:sticky;top:0;z-index:2;padding:9px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:11px;font-weight:800}.autocomplete-item{border-radius:0!important;border-bottom:1px solid #f1f5f9!important;padding:10px 12px!important}.autocomplete-item:last-child{border-bottom:0!important}.autocomplete-item:before{content:'›';flex:0 0 auto}.autocomplete-item span{display:block;min-width:0;white-space:normal;line-height:1.35}.autocomplete-empty{margin:7px!important}.filters-grid .autocomplete-menu{font-size:13px}@media(max-width:780px){.autocomplete-menu{max-height:52vh!important}.autocomplete-toggle{right:4px;top:4px}}

/* v6 searchable directories: compact primary label + contextual secondary path */
.autocomplete-item{display:grid!important;grid-template-columns:1fr!important;gap:2px!important}
.autocomplete-item:before{display:none!important}
.autocomplete-main{font-weight:750;color:#0f172a;line-height:1.25}
.autocomplete-path{display:block;color:#64748b;font-size:11px;font-weight:500;line-height:1.25;white-space:normal}
.autocomplete-item:hover .autocomplete-main,.autocomplete-item.active .autocomplete-main{color:#1d4ed8}
.autocomplete-item:hover .autocomplete-path,.autocomplete-item.active .autocomplete-path{color:#3b82f6}


/* v9: clear action inside autocomplete and exact pagination */
.autocomplete-clear{
    position:sticky;
    top:0;
    z-index:4;
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    min-height:40px;
    padding:9px 12px;
    border:0;
    border-bottom:1px solid #bfdbfe;
    background:#eff6ff;
    color:#1d4ed8;
    text-align:left;
    font-weight:800;
    cursor:pointer;
}
.autocomplete-clear:hover{background:#dbeafe}
.autocomplete-clear span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:999px;
    background:#fff;
    border:1px solid #bfdbfe;
    font-size:16px;
    line-height:1;
}
.autocomplete-clear + .autocomplete-summary{top:40px}

.pager{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
}
.pager-pages{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    flex-wrap:wrap;
}
.pager-page{
    min-width:36px;
    height:36px;
    padding:0 9px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    color:#334155;
    font-weight:800;
    cursor:pointer;
}
.pager-page:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}
.pager-page.active{
    background:#2563eb;
    border-color:#2563eb;
    color:#fff;
}
.pager-ellipsis{padding:0 3px;color:#64748b;font-weight:800}
#page-label{color:#64748b;font-size:12px;white-space:nowrap}

@media(max-width:780px){
    .pager{gap:7px}
    .pager-pages{order:3;width:100%}
    #page-label{order:2}
}


/* v11: compact clear-filter row inside autocomplete */
.autocomplete-clear{
    position:sticky;
    top:0;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    width:100%;
    height:42px;
    min-height:42px;
    padding:0 12px;
    margin:0;
    border:0;
    border-bottom:1px solid #bfdbfe;
    border-radius:0;
    background:#eff6ff;
    color:#1d4ed8;
    text-align:left;
    font-size:13px;
    font-weight:800;
    line-height:1;
    cursor:pointer;
}
.autocomplete-clear:hover,
.autocomplete-clear:focus{
    background:#dbeafe;
    color:#1e40af;
    outline:none;
}
.autocomplete-clear span{
    flex:0 0 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    margin:0;
    padding:0;
    border:1px solid #93c5fd;
    border-radius:50%;
    background:#fff;
    color:#2563eb;
    font-size:14px;
    font-weight:900;
    line-height:20px;
}
.autocomplete-clear + .autocomplete-summary{
    top:42px;
}


/* v12: simplified clear-filter action, no icon */
.autocomplete-clear{
    position:sticky;
    top:0;
    z-index:6;
    display:block;
    width:100%;
    height:auto;
    min-height:42px;
    margin:0;
    padding:11px 14px;
    border:0;
    border-bottom:1px solid #bfdbfe;
    border-radius:0;
    background:#dbeafe;
    color:#1e40af;
    text-align:left;
    font-size:13px;
    font-weight:800;
    line-height:1.25;
    cursor:pointer;
}
.autocomplete-clear:hover,
.autocomplete-clear:focus{
    background:#bfdbfe;
    color:#1e3a8a;
    outline:none;
}
.autocomplete-clear::before{
    content:"";
    display:inline-block;
    width:4px;
    height:18px;
    margin-right:9px;
    vertical-align:-4px;
    border-radius:999px;
    background:#2563eb;
}
.autocomplete-clear span{
    display:none !important;
}
.autocomplete-clear + .autocomplete-summary{
    top:42px;
}


/* v13: online 2GIS enrichment + richer company detail */
.status-ready,.status-no_catalog{background:var(--ok-bg,#eaf7ef);color:var(--ok,#176b3a)}
.status-warning{background:var(--warn-bg,#fff3d6);color:var(--warn,#8a5a00)}
.detail-metrics{margin-bottom:18px}.metric-value-small{font-size:1.15rem;line-height:1.35}.lead-note{max-width:1000px;margin-top:10px;color:var(--muted,#667085)}
.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.info-grid>div,.info-list>div{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:var(--soft,#fafafa)}.info-grid span,.info-list span{font-size:.78rem;color:var(--muted,#667085)}.compact-info{grid-template-columns:repeat(4,minmax(0,1fr))}.info-list{display:grid;gap:8px}.inline-details{margin:14px 0}.inline-details pre{white-space:pre-wrap;word-break:break-word;font-size:.78rem;max-height:280px;overflow:auto}.warning-details{border-left:3px solid #d59a00;padding-left:12px}
.offers-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 0 10px}.offers-list{display:grid;gap:10px}.offer-card{display:block;border:1px solid var(--border,#e5e7eb);border-radius:14px;padding:12px;background:#fff}.offer-title-row{display:flex;justify-content:space-between;gap:18px}.offer-title-row p{margin:6px 0;color:#475467}.offer-price{min-width:150px;text-align:right;font-size:1rem}.offer-pager{margin-top:14px}.compact-warning{margin-top:14px}.technical-details .info-grid{margin-top:0}
@media(max-width:900px){.info-grid,.compact-info{grid-template-columns:repeat(2,minmax(0,1fr))}.offer-title-row{display:block}.offer-price{text-align:left;margin-top:8px;min-width:0}}
@media(max-width:600px){.info-grid,.compact-info{grid-template-columns:1fr}.offer-card{grid-template-columns:64px minmax(0,1fr)}.offers-toolbar{align-items:flex-start;flex-direction:column}}

/* v15 — richer company detail */
.company-profile-panel{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}
.dark-eyebrow{color:#2563eb;margin-bottom:5px}
.company-about-text{font-size:1.05rem;line-height:1.65;max-width:1200px;margin:4px 0 16px;color:#334155}
.profile-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px}
.profile-chip{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid #dbe3ef;background:#f8fafc;font-size:12px;font-weight:700;color:#334155}
.profile-chip-primary{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.compact-chips{margin:8px 0 18px}
.company-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
.company-facts strong{font-size:13px;line-height:1.45}
.subsection-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#64748b;margin:14px 0 7px}
.category-tree-list{margin:0;padding-left:20px;line-height:1.65}
.break-anywhere{overflow-wrap:anywhere;word-break:break-word}
.wide-detail-table{min-width:1280px}
.current-branch-row{background:#eff6ff}
.raw-fields-scroll{max-height:520px}
.raw-fields-table td:first-child{width:42%;color:#475569}
.raw-value{word-break:break-word;white-space:pre-wrap}
.online-detail-metrics{margin-top:15px}
.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.panel-heading h2{margin-bottom:5px}
.panel-heading p{margin:0;color:#64748b;font-size:13px}
@media(max-width:1100px){.company-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.company-facts{grid-template-columns:1fr}.panel-heading{display:block}.panel-heading>.status-badge{margin-top:10px}}

/* v18 — XLSX export */
.filter-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.export-btn{border-color:#86efac;background:#f0fdf4;color:#166534;font-weight:700}
.export-btn:hover{background:#dcfce7;border-color:#4ade80}
.export-btn:disabled{opacity:.65;cursor:wait}
@media(max-width:700px){.filter-buttons{justify-content:stretch}.filter-buttons .btn{flex:1 1 100%}}

/* v18.2 — stable XLSX export state */
.export-note{min-height:20px;margin-top:7px;text-align:right}
.export-working{color:#92400e;font-weight:600}
.export-ok{color:#166534;font-weight:700}
@media(max-width:700px){.export-note{text-align:left}}

/* v19 — users / roles */
.role-badge{display:inline-flex;align-items:center;margin-left:8px;padding:3px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:11px;font-weight:800}
.admin-alert{padding:12px 14px;border-radius:10px;margin:0 0 14px;border:1px solid transparent}
.admin-alert.success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.admin-alert.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.admin-alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.admin-create-grid{display:grid;grid-template-columns:1fr 1.3fr .8fr 1fr 1fr auto;gap:12px;align-items:end}
.admin-create-grid label{display:flex;flex-direction:column;gap:6px}
.admin-create-action{display:flex;align-items:end}
.admin-inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-password-form{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;min-width:420px}
.admin-users-table td{vertical-align:top}
.check-line{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:5px!important;white-space:nowrap}
.small-btn{padding:7px 10px;font-size:12px}
.user-self-badge{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:999px;background:#f3f4f6;color:#4b5563;font-size:10px;font-weight:700}
@media(max-width:1200px){.admin-create-grid{grid-template-columns:1fr 1fr}.admin-create-action{grid-column:1/-1}.admin-password-form{min-width:340px;grid-template-columns:1fr}}
@media(max-width:700px){.admin-create-grid{grid-template-columns:1fr}.admin-create-action{grid-column:auto}.admin-password-form{min-width:280px}}

/* v19.1 — optional email for cabinet users */
.admin-create-grid{grid-template-columns:1fr 1.2fr 1.2fr .8fr 1fr 1fr}
.admin-users-table input[type="email"]{min-width:220px}
@media(max-width:1400px){.admin-create-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:900px){.admin-create-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.admin-create-grid{grid-template-columns:1fr}}


/* v19.2 — online2gis v0.2.3 dashboard */
.online-state-panel{overflow:hidden}
.online-state-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.online-state-box{padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa}
.online-state-title{font-weight:800;margin-bottom:10px;color:#111827}
.online-chips{margin-top:0}
.online-speed-line{font-size:14px;line-height:1.55;margin:3px 0;color:#1f2937}
.online-protection{margin-top:14px}
.online-protection-row{display:flex;flex-wrap:wrap;gap:8px 16px;padding:11px 13px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;font-size:13px;color:#334155}
@media(max-width:900px){.online-state-grid{grid-template-columns:1fr}}

/* v20 — mailings */
.mailing-create-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end}.mailing-create-form label{display:flex;flex-direction:column;gap:6px}.mailing-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mailing-metrics{margin-top:0}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.template-card{display:grid;grid-template-columns:24px 90px minmax(0,1fr);gap:12px;align-items:start;border:1px solid #e2e8f0;border-radius:14px;padding:12px;background:#fff;cursor:pointer}.template-card.selected{border-color:#60a5fa;background:#eff6ff}.template-card>input{margin-top:5px}.template-card img,.template-placeholder{width:90px;height:76px;border-radius:10px;object-fit:cover;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:12px;font-weight:800}.template-card p{margin:7px 0 0;color:#64748b;font-size:12px;line-height:1.4}.mailing-manual-search{display:flex;gap:8px;max-width:900px}.mailing-manual-search input{flex:1}.mailing-search-results{display:grid;gap:8px;margin-top:12px}.mailing-search-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e2e8f0;border-radius:12px;padding:11px 12px}.mailing-company-table{min-width:1050px}.mailing-list-note{padding:10px 2px}.mailing-add-from-search{margin-top:14px;padding:13px;border:1px solid #bfdbfe;background:#f8fbff;border-radius:12px}.mailing-add-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px}.mailing-add-actions select{min-width:300px;max-width:520px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
@media(max-width:1050px){.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.mailing-create-form{grid-template-columns:1fr}.template-grid{grid-template-columns:1fr}.template-card{grid-template-columns:24px 72px minmax(0,1fr)}.template-card img,.template-placeholder{width:72px;height:64px}.mailing-manual-search{flex-direction:column}.mailing-add-actions select{min-width:0;width:100%}.mailing-add-actions .btn{width:100%}}
.mailing-members-toolbar{display:flex;gap:8px;align-items:center;margin:12px 0}.mailing-members-toolbar input{min-width:260px;max-width:600px;flex:1}.mailing-members-pager{margin-top:12px}
@media(max-width:700px){.mailing-members-toolbar{flex-direction:column;align-items:stretch}.mailing-members-toolbar input{min-width:0;max-width:none}}


/* v20.3 owner / audit */
.mailing-owner-admin{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--border);
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
}
.mailing-owner-admin label{
  min-width:300px;
  display:grid;
  gap:6px;
}
.audit-table .audit-details{
  max-width:560px;
  white-space:normal;
  overflow-wrap:anywhere;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:12px;
  line-height:1.45;
}
.audit-table code{
  white-space:nowrap;
}

.admin-delete-user-form{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border);
  display:grid;
  gap:7px;
}
.admin-delete-user-form select{max-width:320px;}


/* v20.7 API docs / Swagger */
.api-docs-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.swagger-host-panel{
  padding:0;
  overflow:hidden;
}
.swagger-host-panel #swagger-ui{
  min-height:720px;
  background:#fff;
}
.swagger-host-panel .swagger-ui{
  font-family:inherit;
}
.swagger-host-panel .swagger-ui .topbar{
  display:none;
}
.swagger-host-panel .swagger-ui .scheme-container{
  position:relative;
  z-index:1;
}


/* v20.8 Swagger spec tabs */
.api-docs-switcher{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.api-docs-tab{
  min-width:180px;
}
.api-docs-tab.is-active{
  pointer-events:none;
}
.api-docs-raw-links{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.api-docs-raw-links a{
  font-size:13px;
}


/* v20.10 — companies filter actions / mailing strip */
.filters-panel .filter-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #e2e8f0;
}

.filter-actions-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
}

.filter-actions-hint{
  min-width:0;
  line-height:1.45;
}

.filter-actions .filter-buttons{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  flex:0 0 auto;
}

.filter-actions .export-note{
  min-height:0;
  margin:0;
}

.mailing-add-from-search{
  width:100%;
  margin-top:0;
  padding:12px 14px;
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  grid-template-areas:
    "copy actions"
    "note note";
  align-items:center;
  gap:8px 18px;
  border:1px solid #bfdbfe;
  border-radius:12px;
  background:#f8fbff;
}

.mailing-add-copy{
  grid-area:copy;
  min-width:0;
}

.mailing-add-title{
  margin-bottom:3px;
  color:#0f172a;
  font-size:14px;
  font-weight:850;
  line-height:1.25;
}

.mailing-add-from-search .mailing-add-actions{
  grid-area:actions;
  display:grid;
  grid-template-columns:minmax(260px,360px) auto auto;
  align-items:center;
  gap:8px;
  margin:0;
}

.mailing-add-from-search .mailing-add-actions select{
  width:100%;
  min-width:0;
  max-width:none;
  height:40px;
}

.mailing-add-from-search .mailing-add-actions .btn{
  white-space:nowrap;
}

.mailing-add-note{
  grid-area:note;
  min-height:0;
  line-height:1.4;
}

@media(max-width:1180px){
  .filter-actions-row{
    align-items:flex-start;
    flex-direction:column;
  }

  .filter-actions .filter-buttons{
    justify-content:flex-start;
  }

  .mailing-add-from-search{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "actions"
      "note";
  }

  .mailing-add-from-search .mailing-add-actions{
    grid-template-columns:minmax(220px,1fr) auto auto;
    width:100%;
  }
}

@media(max-width:760px){
  .filter-actions .filter-buttons{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
  }

  .filter-actions .filter-buttons .btn{
    width:100%;
  }

  .mailing-add-from-search{
    padding:12px;
  }

  .mailing-add-from-search .mailing-add-actions{
    grid-template-columns:1fr;
  }

  .mailing-add-from-search .mailing-add-actions select,
  .mailing-add-from-search .mailing-add-actions .btn{
    width:100%;
  }
}


/* v20.12 — 2GIS source link */
.company-external-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:-7px 0 14px;
}
.company-2gis-link{
  background:#fff!important;
  border-color:#93c5fd!important;
  color:#1d4ed8!important;
}
.company-2gis-link:hover{
  background:#eff6ff!important;
  border-color:#60a5fa!important;
}
@media(max-width:700px){
  .company-external-actions{
    justify-content:stretch;
  }
  .company-external-actions .btn{
    width:100%;
    text-align:center;
  }
}
