/* V2.36 — unified SaaS shell and UI system */
:root{
  --bg:#f4f5f7;
  --panel:#fff;
  --panel-soft:#f8fafc;
  --text:#182433;
  --muted:#66758a;
  --line:#e4e9f0;
  --line-strong:#d5dce7;
  --accent:#206bc4;
  --accent2:#1857a2;
  --accent-soft:#eaf2fb;
  --green:#2f9e44;
  --green-soft:#eaf8ee;
  --red:#d63939;
  --red-soft:#fdecec;
  --orange:#f59f00;
  --violet:#7950f2;
  --shadow:0 1px 2px rgba(24,36,51,.03),0 8px 24px rgba(24,36,51,.045);
  --shadow-lg:0 18px 50px rgba(24,36,51,.15);
  --sidebar-w:252px;
  --sidebar-collapsed:76px;
  --topbar-h:64px;
  --radius:12px;
}

html{background:var(--bg)}
body.app-ui{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;overflow-x:hidden}
body.app-ui a{text-decoration:none}
body.app-ui .ui-icon{width:20px;height:20px;display:block;flex:0 0 auto}

/* Shell */
.app-shell{min-height:100vh}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1000;transition:width .18s ease,transform .18s ease;box-shadow:1px 0 0 rgba(24,36,51,.01)}
.app-main{min-height:100vh;margin-left:var(--sidebar-w);transition:margin-left .18s ease;min-width:0}
.app-topbar{height:var(--topbar-h);position:sticky;top:0;z-index:800;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:18px}
.app-content{min-width:0}
.app-content>.container{width:100%;max-width:1600px;margin:0 auto;padding:26px 30px 42px}
.sidebar-backdrop{display:none}

.sidebar-brand{height:var(--topbar-h);display:flex;align-items:center;padding:0 14px 0 16px;border-bottom:1px solid var(--line);gap:8px}
.sidebar-brand>a{display:flex;align-items:center;gap:11px;min-width:0;flex:1;color:var(--text)}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;letter-spacing:.04em;box-shadow:0 5px 12px rgba(32,107,196,.22)}
.brand-copy{display:flex;flex-direction:column;min-width:0}
.brand-copy strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-copy small{font-size:10px;color:var(--muted);letter-spacing:.035em;text-transform:uppercase;margin-top:1px}
.sidebar-collapse{width:30px;height:30px;border:0;background:transparent;color:#7c899b;border-radius:8px;display:grid;place-items:center;cursor:pointer;transition:.15s}
.sidebar-collapse:hover{background:#f1f4f8;color:var(--text)}
.sidebar-collapse .ui-icon{width:17px;height:17px;transform:rotate(180deg);transition:transform .18s ease}

.sidebar-workspace{padding:14px 14px 8px}
.sidebar-workspace label{display:block;margin:0 0 9px;font-weight:600}
.sidebar-workspace label>span{display:block;color:var(--muted);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;margin:0 0 5px 4px}
.sidebar-workspace select{width:100%;height:38px;margin:0;padding:7px 30px 7px 10px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;color:var(--text);font-size:12px;font-weight:600;cursor:pointer;box-shadow:none}
.sidebar-workspace select:focus{border-color:#9cc1ea;outline:3px solid rgba(32,107,196,.09)}
.workspace-home{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;color:var(--text)}
.workspace-home .ui-icon{color:var(--accent)}
.workspace-home span{display:flex;flex-direction:column;min-width:0}
.workspace-home small{font-size:12px;color:var(--muted);font-weight:600}
.workspace-home strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sidebar-nav{padding:4px 10px 16px;overflow-y:auto;overflow-x:hidden;flex:1}
.nav-section{padding:8px 0}
.nav-section+.nav-section{border-top:1px solid #f0f2f5}
.nav-section-title{height:26px;padding:5px 10px;color:#98a3b3;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.075em;white-space:nowrap}
.sidebar-link{display:flex;align-items:center;gap:11px;min-height:40px;padding:8px 10px;margin:2px 0;border-radius:9px;color:#445267;font-weight:600;transition:background .12s ease,color .12s ease;position:relative;white-space:nowrap}
.sidebar-link .ui-icon{width:18px;height:18px;color:#738196}
.sidebar-link:hover{background:#f4f7fa;color:var(--text)}
.sidebar-link:hover .ui-icon{color:#45556c}
.sidebar-link.active{background:var(--accent-soft);color:#175a9f;font-weight:600}
.sidebar-link.active .ui-icon{color:var(--accent)}
.sidebar-link.active:before{content:"";position:absolute;left:-10px;top:9px;bottom:9px;width:3px;background:var(--accent);border-radius:0 4px 4px 0}

.sidebar-footer{padding:10px;border-top:1px solid var(--line)}
.sidebar-user{display:flex;align-items:center;gap:9px;padding:8px 9px;min-width:0}
.user-avatar{width:30px;height:30px;border-radius:9px;background:#edf2f7;color:#445267;display:grid;place-items:center;font-weight:600;flex:0 0 auto}
.sidebar-user>span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.sidebar-user strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}
.sidebar-user small{font-size:12px;color:var(--muted);margin-top:2px}
.sidebar-logout{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:9px;color:#6d7888;font-weight:600}
.sidebar-logout:hover{background:#fff0f0;color:var(--red)}
.sidebar-logout .ui-icon{width:18px;height:18px}

.topbar-left,.topbar-actions{display:flex;align-items:center;gap:12px;min-width:0}
.mobile-menu-btn{display:none;width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:9px;color:#445267;place-items:center;cursor:pointer}
.topbar-context{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.topbar-context strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-context span{font-size:12px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-actions .btn{box-shadow:none}

/* Collapsed sidebar */
body.sidebar-collapsed .app-sidebar{width:var(--sidebar-collapsed)}
body.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)}
body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .sidebar-workspace label,
body.sidebar-collapsed .workspace-home span,
body.sidebar-collapsed .nav-section-title,
body.sidebar-collapsed .sidebar-link span,
body.sidebar-collapsed .sidebar-user>span:last-child,
body.sidebar-collapsed .sidebar-logout span{display:none}
body.sidebar-collapsed .sidebar-brand{padding-left:20px}
body.sidebar-collapsed .sidebar-brand>a{flex:0 0 auto}
body.sidebar-collapsed .sidebar-collapse{position:absolute;right:-15px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
body.sidebar-collapsed .sidebar-collapse .ui-icon{transform:none}
body.sidebar-collapsed .sidebar-workspace{padding:12px 14px}
body.sidebar-collapsed .workspace-home{justify-content:center;padding:9px}
body.sidebar-collapsed .workspace-home .ui-icon{width:20px;height:20px}
body.sidebar-collapsed .sidebar-link{justify-content:center;padding:9px}
body.sidebar-collapsed .sidebar-link.active:before{left:-10px}
body.sidebar-collapsed .sidebar-user{justify-content:center}
body.sidebar-collapsed .sidebar-logout{justify-content:center}

/* Core controls */
body.app-ui .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid transparent;border-radius:9px;background:#1a3f6c;color:#fff;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:0 1px 2px rgba(24,36,51,.06);transition:background .12s ease,border-color .12s ease,transform .08s ease,box-shadow .12s ease}
body.app-ui .btn:hover{background:var(--accent2);color:#fff;box-shadow:0 4px 12px rgba(32,107,196,.15)}
body.app-ui .btn:active{transform:translateY(1px)}
body.app-ui .btn.secondary{background:#fff;color:#35445a;border-color:var(--line-strong);box-shadow:0 1px 2px rgba(24,36,51,.03)}
body.app-ui .btn.secondary:hover{background:#f7f9fc;color:#182433;border-color:#c8d1dd;box-shadow:none}
body.app-ui .btn.danger{background:#fff;color:var(--red);border-color:#efb9b9}
body.app-ui .btn.danger:hover{background:var(--red-soft);color:#b92727;border-color:#e79c9c}
body.app-ui .btn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none;transform:none}
body.app-ui .btn-compact{min-height:36px;padding:7px 11px}
body.app-ui .btn-compact .ui-icon{width:16px;height:16px}
body.app-ui .btn-small{min-height:34px;padding:7px 11px;font-size:12px}

body.app-ui input:not([type="checkbox"]):not([type="radio"]),
body.app-ui select,
body.app-ui textarea{width:100%;margin-top:6px;border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:9px 11px;min-height:40px;font:inherit;color:var(--text);box-shadow:0 1px 2px rgba(24,36,51,.02);transition:border-color .12s ease,box-shadow .12s ease}
body.app-ui textarea{min-height:90px;resize:vertical}
body.app-ui input:focus,body.app-ui select:focus,body.app-ui textarea:focus{border-color:#8bb7e6;outline:0;box-shadow:0 0 0 3px rgba(32,107,196,.1)}
body.app-ui input[type="checkbox"]{width:17px;height:17px;margin:0;accent-color:var(--accent)}
body.app-ui form label{font-size:12px;font-weight:600;color:#46556a;margin-bottom:6px}
body.app-ui .field-hint{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:500;line-height:1.45}

/* Page hierarchy */
body.app-ui .page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:2px 0 22px}
body.app-ui .page-head>div:first-child{min-width:0}
body.app-ui .page-head h1,body.app-ui h1{font-size:25px;line-height:1.22;letter-spacing:-.02em;font-weight:600;color:var(--text);margin:0 0 6px}
body.app-ui .page-head p{margin:0;color:var(--muted);max-width:780px;font-size:13px}
body.app-ui h2{color:var(--text)}
body.app-ui .head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
body.app-ui .breadcrumbs{display:flex;align-items:center;gap:7px;margin:0 0 14px;color:#8a97a8;font-size:12px}
body.app-ui .breadcrumbs a{color:#64748b}
body.app-ui .breadcrumbs a:hover{color:var(--accent)}

body.app-ui .panel,body.app-ui .card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
body.app-ui .panel{padding:20px}
body.app-ui .panel h2{font-size:16px;font-weight:600;letter-spacing:-.01em;margin:0 0 14px}
body.app-ui .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
body.app-ui .panel-head h2{margin:0 0 3px}
body.app-ui .muted{color:var(--muted)!important}
body.app-ui .small{font-size:12px}
body.app-ui code{background:#eef2f6;color:#334155;padding:2px 5px;border-radius:5px;font-size:12px}

/* Stats */
body.app-ui .stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 18px}
body.app-ui .stat{min-width:0;background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px 17px;box-shadow:0 1px 2px rgba(24,36,51,.025)}
body.app-ui .stat small{display:block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:5px}
body.app-ui .stat strong{display:block;font-size:24px;line-height:1.1;letter-spacing:-.025em;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis}
body.app-ui .stat.positive strong,body.app-ui .up{color:var(--green)}
body.app-ui .stat.negative strong,body.app-ui .down{color:var(--red)}
body.app-ui .serp-summary-grid{gap:12px;margin-bottom:18px}
body.app-ui .serp-summary-grid .stat{box-shadow:0 1px 2px rgba(24,36,51,.025)}

/* Layouts */
body.app-ui .two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
body.app-ui .two-col.wide-left{grid-template-columns:minmax(0,2fr) minmax(300px,.72fr)}
body.app-ui .analytics-grid{gap:16px;margin-top:16px}
body.app-ui .narrow{max-width:720px;margin:0 auto}
body.app-ui .narrow>h1{margin-bottom:17px}

/* Tables */
body.app-ui .table-scroll{overflow:auto;border-radius:inherit}
body.app-ui table{width:100%;border-collapse:separate;border-spacing:0}
body.app-ui th{height:42px;padding:9px 12px;border-bottom:1px solid var(--line);background:#fafbfc;color:#748197;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;vertical-align:middle;white-space:nowrap}
body.app-ui td{padding:11px 12px;border-bottom:1px solid #edf0f4;vertical-align:middle;color:#2c394b}
body.app-ui tbody tr:last-child td{border-bottom:0}
body.app-ui tbody tr:hover td{background:#fbfcfe}
body.app-ui td strong,body.app-ui td b{color:#202d3d}
body.app-ui .panel.table-scroll{padding:0}
body.app-ui .panel.table-scroll>table{margin:0}
body.app-ui .panel.table-scroll>.empty{border-top:0}
body.app-ui .url-cell{max-width:520px}
body.app-ui .danger-link{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;color:#aab3c0;font-size:18px;line-height:1}
body.app-ui .danger-link:hover{background:var(--red-soft);color:var(--red)}

/* Filter bars */
body.app-ui .filters{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 14px;margin:0 0 16px;display:flex;align-items:flex-end;gap:10px;box-shadow:0 1px 2px rgba(24,36,51,.02)}
body.app-ui .filters label{margin:0;min-width:145px}
body.app-ui .filters select,body.app-ui .filters input{margin-top:5px;min-height:36px;padding-top:7px;padding-bottom:7px}
body.app-ui .filters-wide{flex-wrap:wrap}
body.app-ui .position-summary{gap:7px;margin-bottom:14px}
body.app-ui .position-summary span{background:#fff;border:1px solid var(--line);box-shadow:none;padding:6px 10px;font-size:12px}

/* Empty / alerts / badges */
body.app-ui .empty{padding:38px 24px;text-align:center;color:var(--muted);font-size:13px}
body.app-ui .empty.compact{padding:24px 18px}
body.app-ui .flash{border-radius:10px;border:1px solid transparent;padding:11px 13px;margin:0 0 16px;box-shadow:none;font-weight:600}
body.app-ui .flash.success{background:var(--green-soft);border-color:#c8ead3;color:#25723a}
body.app-ui .flash.error{background:var(--red-soft);border-color:#f2cccc;color:#a92e2e}
body.app-ui .badge{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 8px;border-radius:999px;background:#eef2f6;color:#5c6878;font-size:12px;font-weight:600;line-height:1.1}
body.app-ui .badge.completed{background:var(--green-soft);color:#25723a}
body.app-ui .badge.completed_with_errors{background:#fff5dc;color:#8a6200}
body.app-ui .badge.stopped{background:#eef1f6;color:#5f6c80}
body.app-ui .badge.running{background:var(--accent-soft);color:#1d5f9f}
body.app-ui .badge.queued{background:#eef2f6;color:#66758a}
body.app-ui .badge.failed{background:var(--red-soft);color:#aa2e2e}

/* Cards and project dashboard */
body.app-ui .project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
body.app-ui .project-card{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;color:var(--text);box-shadow:0 1px 2px rgba(24,36,51,.025);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
body.app-ui .project-card:hover{transform:translateY(-1px);border-color:#c8d6e5;box-shadow:0 8px 22px rgba(24,36,51,.07)}
body.app-ui .project-title{font-size:17px;font-weight:600;letter-spacing:-.01em;margin-bottom:3px}
body.app-ui .subproject-count{display:inline-flex;margin-top:13px;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#59677a;font-size:12px;font-weight:600}
body.app-ui .mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}
body.app-ui .mini-grid span{background:#f8fafc;border:1px solid #edf0f4;padding:9px 10px;border-radius:9px}
body.app-ui .mini-grid b{display:block;font-size:16px;line-height:1.2;color:#253244}
body.app-ui .mini-grid small{font-size:12px;color:var(--muted)}
body.app-ui .quick-links{gap:8px}
body.app-ui .quick-links a,body.app-ui .quick-links span{background:#f8fafc;border:1px solid #edf0f4;border-radius:9px;padding:12px;color:#35445a}
body.app-ui .quick-links a:hover{background:#f2f6fb;border-color:#d7e2ee}
body.app-ui .subproject-card{border-color:var(--line)!important;box-shadow:none!important;border-radius:10px!important;transition:.12s}
body.app-ui .subproject-card:hover{border-color:#bfd2e6!important;background:#fbfdff}
body.app-ui .target-mode{background:#edf3fb;color:#316796;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}

/* Check / worker UI */
body.app-ui .checks-page-head{align-items:flex-start}
body.app-ui .check-start-form{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 11px;box-shadow:0 1px 2px rgba(24,36,51,.02)}
body.app-ui .check-start-form .provider-picker span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.045em}
body.app-ui .active-check-kicker{font-size:12px;color:#77859a}
body.app-ui .active-check-title-row h2{font-size:19px}
body.app-ui .active-metrics span{font-size:12px}
body.app-ui .active-metrics strong{font-size:18px}
body.app-ui .progress{height:7px;background:#edf1f5;border-radius:999px;overflow:hidden}
body.app-ui .progress span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .2s ease}
body.app-ui .more-menu>summary{border-color:var(--line);box-shadow:none;color:#69778a}
body.app-ui .more-menu-popover{border-color:var(--line);border-radius:10px;box-shadow:var(--shadow-lg)}
body.app-ui .menu-action{border-radius:7px;font-size:12px}
body.app-ui .checks-history-panel{border-radius:12px}
body.app-ui .checks-history-head{padding:17px 18px 9px}
body.app-ui .error-task-card{border-color:var(--line);border-radius:10px;background:#fff}

/* Regions / keyword side panels */
body.app-ui .region-add-panel{position:sticky;top:calc(var(--topbar-h) + 18px);align-self:start}
body.app-ui .region-selected{border-color:#cddff1!important;background:#f5f9fe!important}
body.app-ui .region-object-note{background:#f8fafc!important;border-color:#edf0f4!important}
body.app-ui .advanced-import{border-top:1px solid var(--line);margin-top:16px;padding-top:13px}
body.app-ui .advanced-import summary{cursor:pointer;color:#5b6879;font-size:12px;font-weight:600}

/* Settings */
body.app-ui .ai-toggle{display:inline-flex;align-items:center;gap:7px;margin:0}
body.app-ui .ai-toggle span{font-size:12px;color:#59677a}
body.app-ui .ai-settings-note{background:#f8fafc;border:1px solid #edf0f4;padding:10px 11px;border-radius:9px;margin:12px 0 14px}

/* Analytics pages inherited from older CSS */
body.app-ui .ai-overview-panel{border-color:var(--line);box-shadow:none}
body.app-ui .chart-wrap{border-radius:8px}
body.app-ui .domain-stat{font-size:15px!important;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
body.app-ui .url-stack a{border-radius:7px}
body.app-ui .landing-history span{border-radius:8px}

/* Competitors / Tabulator harmonization */
body.app-ui .tabulator{border:1px solid var(--line)!important;border-radius:9px!important;overflow:hidden;font-family:inherit!important;background:#fff!important}
body.app-ui .tabulator .tabulator-header{border-bottom:1px solid var(--line)!important;background:#fafbfc!important}
body.app-ui .tabulator .tabulator-header .tabulator-col{background:#fafbfc!important;border-right-color:#edf0f4!important}
body.app-ui .tabulator-row{border-bottom-color:#edf0f4!important;background:#fff!important}
body.app-ui .tabulator-row.tabulator-row-even{background:#fff!important}
body.app-ui .tabulator-row:hover{background:#fbfcfe!important}

/* Auth stays outside the shell but uses same visual language */
body:not(.app-ui){background:var(--bg)}
.auth-card{border-radius:14px!important;border-color:var(--line)!important;box-shadow:0 18px 50px rgba(24,36,51,.08)!important}

@media(max-width:1250px){
  body.app-ui .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.app-ui .two-col.wide-left{grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr)}
  .topbar-actions .btn span{display:none}
}

@media(max-width:900px){
  :root{--topbar-h:58px}
  .app-sidebar{width:min(290px,86vw);transform:translateX(-102%);box-shadow:var(--shadow-lg)}
  .app-main,body.sidebar-collapsed .app-main{margin-left:0}
  body.sidebar-open .app-sidebar{transform:translateX(0);width:min(290px,86vw)}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:900}
  .sidebar-collapse{display:none}
  .mobile-menu-btn{display:grid}
  .app-topbar{padding:0 15px}
  .app-content>.container{padding:19px 15px 34px}
  .topbar-context span{display:none}
  .topbar-actions .btn{min-height:36px;padding:7px 10px}
  body.app-ui .page-head{flex-direction:column;gap:14px;margin-bottom:18px}
  body.app-ui .page-head .head-actions{width:100%;justify-content:flex-start}
  body.app-ui .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app-ui .two-col,body.app-ui .two-col.wide-left,body.app-ui .analytics-grid{grid-template-columns:1fr}
  body.app-ui .filters{flex-wrap:wrap;align-items:stretch}
  body.app-ui .filters label{flex:1 1 160px;min-width:0}
  body.app-ui .region-add-panel{position:static}
  body.app-ui .check-start-form{width:100%;min-width:0}
}

@media(max-width:560px){
  .topbar-actions{display:none}
  body.app-ui .stats-grid{grid-template-columns:1fr 1fr;gap:8px}
  body.app-ui .stat{padding:13px}
  body.app-ui .stat strong{font-size:21px}
  body.app-ui .project-grid{grid-template-columns:1fr}
  body.app-ui .panel{padding:16px}
  body.app-ui .head-actions .btn,body.app-ui .head-actions form{flex:1 1 auto}
  body.app-ui .head-actions .btn{width:100%}
  body.app-ui .active-metrics{grid-template-columns:repeat(3,1fr)}
  body.app-ui .active-check-controls{width:100%}
  body.app-ui .active-check-controls>.btn{flex:1}
}

/* V2.37 — final navigation architecture + contextual topbar */
.sidebar-workspace{padding-bottom:10px}
.sidebar-workspace select:disabled{cursor:not-allowed;color:#8b97a7;background:#f5f7fa;border-color:#e8ecf1}

.sidebar-link.disabled{color:#a1acba;cursor:not-allowed;user-select:none}
.sidebar-link.disabled .ui-icon{color:#b5beca}
.sidebar-link.disabled:hover{background:transparent;color:#a1acba}
.sidebar-link.disabled:hover .ui-icon{color:#b5beca}
.sidebar-link.disabled:focus{outline:0;background:#f7f9fb}
.sidebar-link.disabled[data-hint]::after{
  content:attr(data-hint);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(-4px);
  width:max-content;max-width:230px;padding:7px 9px;border:1px solid #dfe5ec;border-radius:8px;background:#182433;color:#fff;
  font-size:12px;font-weight:600;line-height:1.35;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;
  box-shadow:0 8px 24px rgba(24,36,51,.18);transition:opacity .12s ease,transform .12s ease;z-index:1200
}
.sidebar-link.disabled[data-hint]:hover::after,.sidebar-link.disabled[data-hint]:focus::after{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}

.sidebar-footer{display:flex;flex-direction:column;gap:2px}
.sidebar-all-projects{display:flex;align-items:center;gap:11px;min-height:38px;padding:8px 9px;border-radius:9px;color:#536176;font-weight:600;position:relative}
.sidebar-all-projects .ui-icon{width:18px;height:18px;color:#738196}
.sidebar-all-projects:hover{background:#f4f7fa;color:var(--text)}
.sidebar-all-projects.active{background:var(--accent-soft);color:#175a9f}
.sidebar-all-projects.active .ui-icon{color:var(--accent)}
.sidebar-all-projects.active::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;background:var(--accent);border-radius:0 4px 4px 0}
.sidebar-user{margin-top:3px;border-top:1px solid #f0f2f5;padding-top:10px}

.topbar-context strong{font-size:13px}
.topbar-context span{font-size:12px}

body.sidebar-collapsed .sidebar-all-projects span{display:none}
body.sidebar-collapsed .sidebar-all-projects{justify-content:center;padding:9px}
body.sidebar-collapsed .sidebar-all-projects.active::before{left:-10px}
body.sidebar-collapsed .sidebar-link.disabled[data-hint]::after{left:calc(100% + 14px)}

@media(max-width:900px){
  .sidebar-link.disabled[data-hint]::after{display:none}
}

/* V2.38 — shared design system + projects page */
:root{
  --content-max:1680px;
  --radius-sm:9px;
  --radius-md:12px;
  --radius-lg:14px;
  --control-h:40px;
  --page-x:32px;
  --page-y:28px;
  --section-gap:18px;
}

/* Shared page rhythm */
body.app-ui .app-content>.container{max-width:var(--content-max);padding:var(--page-y) var(--page-x) 48px}
body.app-ui .page-head{margin:0 0 20px;gap:24px}
body.app-ui .page-head h1,body.app-ui h1{font-size:26px;line-height:1.2;margin-bottom:6px}
body.app-ui .page-head p{font-size:13px;line-height:1.55}
body.app-ui .breadcrumbs{margin-bottom:13px}
body.app-ui .panel,body.app-ui .card{border-radius:var(--radius-md);box-shadow:0 1px 2px rgba(24,36,51,.025),0 8px 22px rgba(24,36,51,.035)}
body.app-ui .panel{padding:20px}
body.app-ui .panel h2{font-size:16px;line-height:1.3;margin-bottom:13px}
body.app-ui .panel-head{margin-bottom:14px}

/* Controls are deliberately identical across ordinary PHP pages. */
body.app-ui .btn{min-height:var(--control-h);padding:8px 14px;border-radius:var(--radius-sm)}
body.app-ui .btn.btn-compact{min-height:36px}
body.app-ui input:not([type="checkbox"]):not([type="radio"]),
body.app-ui select,
body.app-ui textarea{min-height:var(--control-h);border-radius:var(--radius-sm)}
body.app-ui form label{line-height:1.35}

/* Cards / KPI / filters */
body.app-ui .stats-grid{gap:12px;margin-bottom:18px}
body.app-ui .stat{border-radius:var(--radius-md);padding:16px 17px;box-shadow:0 1px 2px rgba(24,36,51,.02)}
body.app-ui .filters{border-radius:var(--radius-md);padding:13px 14px;margin-bottom:16px}
body.app-ui .quick-links a,body.app-ui .quick-links span{border-radius:var(--radius-sm)}

/* Standard data table density. Tabulator keeps its own layout but shares the same chrome. */
body.app-ui table:not(.tabulator-table){font-size:13px}
body.app-ui th{height:42px;padding:9px 12px}
body.app-ui td{padding:10px 12px}
body.app-ui .tabulator{border-radius:var(--radius-sm)!important}

/* Forms */
body.app-ui .narrow{max-width:760px}
body.app-ui .narrow>.panel,body.app-ui .narrow>form.panel{padding:20px}
body.app-ui .narrow>h1{margin-bottom:17px}

/* Empty states */
body.app-ui .empty-state{min-height:280px;display:grid;place-items:center;text-align:center;padding:42px 24px}
body.app-ui .empty-state-inner{max-width:440px}
body.app-ui .empty-state-icon{width:48px;height:48px;margin:0 auto 15px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
body.app-ui .empty-state-icon .ui-icon{width:24px;height:24px}
body.app-ui .empty-state h2{font-size:18px;margin:0 0 7px}
body.app-ui .empty-state p{margin:0 0 17px;color:var(--muted);font-size:13px;line-height:1.55}

/* Projects page */
body.projects-page .page-head{align-items:center}
body.projects-page .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body.projects-page .project-card{min-height:244px;padding:0;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-lg);transform:none}
body.projects-page .project-card:hover{transform:none;border-color:#bfd0e2;box-shadow:0 10px 28px rgba(24,36,51,.075)}
body.projects-page .project-card-main{padding:19px 20px 16px;display:flex;flex-direction:column;flex:1;min-width:0}
body.projects-page .project-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0;margin-bottom:13px}
body.projects-page .project-card-heading>div{min-width:0}
body.projects-page .project-title{font-size:17px;line-height:1.3;margin:0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.projects-page .project-object-count{flex:0 0 auto;display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#59677a;font-size:12px;font-weight:600;white-space:nowrap}
body.projects-page .project-description{min-height:40px;margin:7px 0 17px;color:var(--muted);font-size:12px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.projects-page .project-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:8px 0;margin-top:auto;padding-top:14px;border-top:1px solid #edf1f5}
body.projects-page .project-metric{display:inline-flex;align-items:baseline;gap:4px;padding:0 12px;border-right:1px solid #e8edf3;color:#657387;font-size:12px;line-height:1.3;white-space:nowrap}
body.projects-page .project-metric:first-child{padding-left:0}
body.projects-page .project-metric:last-child{border-right:0;padding-right:0}
body.projects-page .project-metric b{font-size:14px;color:#243244;font-weight:600}
body.projects-page .project-card-footer{min-height:46px;padding:11px 20px;border-top:1px solid #edf1f5;background:#fbfcfe;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7a8798;font-size:12px}
body.projects-page .project-last-check{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.projects-page .project-card-open{color:var(--accent);font-weight:600;white-space:nowrap}
body.projects-page .projects-empty{border-radius:var(--radius-lg)}

@media(max-width:1450px){
  body.projects-page .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){
  :root{--page-x:15px;--page-y:19px}
  body.projects-page .page-head{align-items:flex-start}
  body.projects-page .project-grid{grid-template-columns:1fr}
}

@media(max-width:560px){
  body.projects-page .project-card-main{padding:17px}
  body.projects-page .project-card-footer{padding:10px 17px}
  body.projects-page .project-metrics{gap:9px 0}
  body.projects-page .project-metric{width:50%;padding:0 8px;border-right:0}
  body.projects-page .project-metric:nth-child(odd){padding-left:0}
}

/* Site favicon stored locally for project identification. */
body.app-ui .site-favicon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border:1px solid #e1e7ef;border-radius:8px;background:#f7f9fc;overflow:hidden;color:#65758a;font-size:12px;font-weight:600;line-height:1}
body.app-ui .site-favicon-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
body.app-ui .site-favicon img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:4px;background:#fff}
body.app-ui .site-favicon--sm{width:26px;height:26px;flex-basis:26px;border-radius:7px;font-size:12px}
body.app-ui .site-favicon--lg{width:36px;height:36px;flex-basis:36px;border-radius:9px;font-size:14px}

/* ==========================================================================
   Canonical selectors and device switches
   Source of truth for selector / Desktop-Mobile visual styling.
   Do not duplicate these rules in page-specific CSS. See /AGENTS.md.
   ========================================================================== */

body.app-ui .ui-select-trigger{
  border:0!important;
  border-radius:12px!important;
  background:#f3f6fa!important;
  color:#2d3d52!important;
  box-shadow:none!important;
  font-weight:600!important;
  padding-left:11px!important;
  padding-right:10px!important;
  transition:background-color .15s ease,color .15s ease,box-shadow .15s ease!important;
}
body.app-ui .ui-select-trigger:hover:not(:disabled){
  border:0!important;
  background:#edf3f9!important;
  color:#1f3550!important;
  box-shadow:none!important;
}
body.app-ui .ui-select-trigger:focus-visible,
body.app-ui .ui-select.is-open .ui-select-trigger{
  outline:0!important;
  border:0!important;
  background:#eaf2fb!important;
  color:#175fae!important;
}
body.app-ui .ui-select-trigger:focus-visible{
  box-shadow:0 0 0 3px rgba(55,126,209,.14)!important;
}
body.app-ui .ui-select.is-disabled .ui-select-trigger,
body.app-ui .ui-select-trigger:disabled{
  border:0!important;
  background:#f5f7fa!important;
  color:#9aa6b5!important;
  box-shadow:none!important;
  opacity:.72;
}
body.app-ui .history-compare-trigger{
  border:0!important;
  border-radius:10px!important;
  background:#f3f6fa!important;
  color:#2d3d52!important;
  box-shadow:none!important;
  transition:background-color .15s ease,color .15s ease,box-shadow .15s ease!important;
}
body.app-ui .history-compare-trigger:hover:not(:disabled){
  border:0!important;
  background:#edf3f9!important;
  color:#1f3550!important;
  box-shadow:none!important;
}
body.app-ui .history-compare-trigger:focus-visible{
  outline:0!important;
  border:0!important;
  background:#eaf2fb!important;
  color:#175fae!important;
  box-shadow:0 0 0 3px rgba(55,126,209,.14)!important;
}
body.app-ui .history-compare-trigger.active{
  background:#eaf2fb!important;
  color:#175fae!important;
}
body.app-ui .ui-select-value{
  gap:8px;
}
body.app-ui .ui-select-value-text{
  font-weight:600;
}
body.app-ui .ui-select-chevron{
  width:14px!important;
  height:14px!important;
  flex:0 0 14px!important;
  color:#8a99aa!important;
  transition:transform .15s ease,color .15s ease!important;
}
body.app-ui .ui-select.is-open .ui-select-chevron{
  color:#3779c7!important;
}

body.app-ui .ui-select-popover{
  border:1px solid #e5ebf2!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 16px 40px rgba(31,48,72,.14)!important;
  overflow:hidden!important;
}
body.app-ui .ui-select-search{
  padding:9px!important;
  border-bottom:1px solid #eef2f6!important;
  background:#fff!important;
}
body.app-ui .ui-select-search input[type="search"]{
  height:36px!important;
  min-height:36px!important;
  border:0!important;
  border-radius:10px!important;
  background-color:#f5f7fa!important;
  color:#314056!important;
  box-shadow:none!important;
  font-size:12px!important;
}
body.app-ui .ui-select-search input[type="search"]:focus{
  border:0!important;
  background-color:#f1f5f9!important;
  box-shadow:0 0 0 3px rgba(55,126,209,.08)!important;
}
body.app-ui .ui-select-options{
  gap:3px!important;
  padding:6px!important;
}
body.app-ui .ui-select-option{
  min-height:36px!important;
  padding:8px 31px 8px 10px!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#425269!important;
  font-size:12px!important;
  font-weight:500!important;
  box-shadow:none!important;
}
body.app-ui .ui-select-option:hover,
body.app-ui .ui-select-option.is-keyboard-active{
  background:#f4f7fb!important;
  color:#26384f!important;
}
body.app-ui .ui-select-option.is-selected{
  background:#edf5ff!important;
  color:#1768c8!important;
}
/* Professional CSS checkmark instead of a text/emoji glyph. */
body.app-ui .ui-select-option.is-selected::after{
  content:''!important;
  position:absolute!important;
  right:12px!important;
  top:50%!important;
  width:7px!important;
  height:4px!important;
  border-left:1.8px solid #1768c8!important;
  border-bottom:1.8px solid #1768c8!important;
  transform:translateY(-62%) rotate(-45deg)!important;
  background:transparent!important;
}
body.app-ui .ui-select-option:disabled,
body.app-ui .ui-select-option.is-disabled{
  color:#a2adbb!important;
  opacity:.7;
}
body.app-ui .ui-select-option-group{
  padding:7px 9px 4px!important;
  color:#94a1b1!important;
  font-size:10px!important;
  font-weight:600!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
}
body.app-ui .ui-select-empty{
  padding:15px 10px!important;
  color:#8795a7!important;
}

/* Dense controls keep their compact height, but use the same borderless chrome. */
body.app-ui .checks-filterbar .ui-select-trigger,
body.app-ui .qv-toolbar .ui-select-trigger,
body.app-ui .cann-filter-grid .ui-select-trigger,
body.app-ui .history-toolbar-v2 .ui-select-trigger,
body.app-ui .engine-region-depth-v261 .ui-select-trigger,
body.app-ui .settings-parameter-row-v242 .ui-select-trigger{
  border-radius:10px!important;
}

/* Sidebar workspace selectors use a slightly stronger surface because they sit on a pale sidebar. */
body.app-ui:not(.dashboard-shell-page) .app-sidebar .sidebar-workspace .ui-select-trigger{
  background:#f3f6fa!important;
  border-radius:11px!important;
}
body.app-ui:not(.dashboard-shell-page) .app-sidebar .sidebar-workspace .ui-select-trigger:hover:not(:disabled){
  background:#edf3f9!important;
}
body.app-ui:not(.dashboard-shell-page) .app-sidebar .sidebar-workspace .ui-select.is-open .ui-select-trigger{
  background:#eaf2fb!important;
}
/* Project names in the sidebar may wrap to several lines; keep a comfortable
   touch target and visible breathing room above and below the label. */
body.app-ui .ui-select-popover--sidebar-project .ui-select-option{
  flex:0 0 auto!important;
  padding:12px 31px 12px 10px!important;
  line-height:1.35!important;
}

/* Branded engine icons remain clean inside the new soft surface. */
body.app-ui .ui-select-trigger .search-brand-icon,
body.app-ui .ui-select-option .search-brand-icon{
  border-radius:50%;
}

@media(max-width:760px){
  body.app-ui .ui-select-popover{
    border-radius:13px!important;
    max-width:calc(100vw - 12px)!important;
  }
}

/* UI V3.00 — borderless device segmented controls and Search Engines selectors. */

/* Desktop / Mobile segmented controls use the same soft surface as modern selectors. */
body.app-ui .checks-device-switch-v269,
body.app-ui .history-device-switch,
body.app-ui .dashboard-create-switch,
body.app-ui.qv-analytics-page .qv-device-switch,
body.app-ui .device-segment{
  border:0!important;
  background:#f3f6fa!important;
  border-radius:11px!important;
  box-shadow:none!important;
}
body.app-ui .checks-device-switch-v269 button,
body.app-ui .history-device-switch button,
body.app-ui .history-device-switch>span,
body.app-ui .dashboard-create-switch button,
body.app-ui.qv-analytics-page .qv-device-switch button,
body.app-ui .device-segment span{
  border:0!important;
  box-shadow:none!important;
  color:#66768a!important;
}
body.app-ui .checks-device-switch-v269 button:hover:not(:disabled),
body.app-ui .history-device-switch button:hover:not(:disabled),
body.app-ui .dashboard-create-switch button:hover:not(:disabled),
body.app-ui.qv-analytics-page .qv-device-switch button:hover,
body.app-ui .device-segment label:hover span{
  background:#eaf0f6!important;
  color:#294b72!important;
}
body.app-ui .checks-device-switch-v269 button.active,
body.app-ui .history-device-switch button.active,
body.app-ui .history-device-switch>span.active,
body.app-ui .dashboard-create-switch button.active,
body.app-ui.qv-analytics-page .qv-device-switch button.active,
body.app-ui .device-segment label:has(input:checked) span{
  background:#fff!important;
  color:#245fae!important;
  box-shadow:0 1px 4px rgba(31,43,68,.10)!important;
}
body.app-ui .checks-device-switch-v269 button:focus-visible,
body.app-ui .history-device-switch button:focus-visible,
body.app-ui .dashboard-create-switch button:focus-visible,
body.app-ui.qv-analytics-page .qv-device-switch button:focus-visible,
body.app-ui .device-segment label:has(input:focus-visible) span{
  outline:0!important;
  box-shadow:0 0 0 3px rgba(55,126,209,.10)!important;
}
body.app-ui .checks-device-switch-v269 button:disabled,
body.app-ui .history-device-switch button:disabled,
body.app-ui .dashboard-create-switch button:disabled,
body.app-ui.qv-analytics-page .qv-device-switch button:disabled{
  opacity:.48!important;
  cursor:not-allowed!important;
  background:transparent!important;
  color:#8f9bab!important;
  box-shadow:none!important;
}

/* Search Engines: custom depth selectors should look like the global “Все группы” selector. */
body.app-ui.search-engines-v261-page .engine-bulk-trigger-v261,
body.app-ui.search-engines-v261-page .engine-bulk-select-v261,
body.app-ui.search-engines-v261-page .engine-region-depth-v261 select{
  border:0!important;
  border-radius:10px!important;
  background:#f3f6fa!important;
  color:#53677f!important;
  box-shadow:none!important;
  font-weight:600!important;
}
body.app-ui.search-engines-v261-page .engine-bulk-trigger-v261:hover,
body.app-ui.search-engines-v261-page .engine-bulk-trigger-v261[aria-expanded="true"],
body.app-ui.search-engines-v261-page .engine-bulk-select-v261:hover,
body.app-ui.search-engines-v261-page .engine-region-depth-v261 select:hover{
  border:0!important;
  background:#edf3f9!important;
  color:#315f96!important;
  box-shadow:none!important;
}
body.app-ui.search-engines-v261-page .engine-bulk-trigger-v261:focus-visible,
body.app-ui.search-engines-v261-page .engine-bulk-select-v261:focus-visible,
body.app-ui.search-engines-v261-page .engine-region-depth-v261 select:focus-visible{
  outline:0!important;
  border:0!important;
  background:#eaf2fb!important;
  box-shadow:0 0 0 3px rgba(55,126,209,.10)!important;
}

body.app-ui.search-engines-v261-page .engine-bulk-popover-v261,
body.app-ui.search-engines-v261-page .engine-add-picker-v261,
body.app-ui.search-engines-v261-page .engine-region-results-v261{
  border:1px solid #e5ebf2!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 16px 40px rgba(31,48,72,.14)!important;
}
body.app-ui.search-engines-v261-page .engine-bulk-depths-v261 button{
  border:0!important;
  border-radius:8px!important;
  background:#f3f6fa!important;
  color:#53677f!important;
  box-shadow:none!important;
}
body.app-ui.search-engines-v261-page .engine-bulk-depths-v261 button:hover{
  background:#edf3f9!important;
  color:#315f96!important;
}
body.app-ui.search-engines-v261-page .engine-bulk-depths-v261 button.is-active{
  border:0!important;
  background:#eaf2fb!important;
  color:#1768c8!important;
  box-shadow:0 0 0 3px rgba(55,126,209,.06)!important;
}

/* Region search field on Search Engines pages follows the same soft, borderless language. */
body.app-ui.search-engines-v261-page .engine-region-search-wrap-v261>input[type="text"]{
  border:0!important;
  border-radius:10px!important;
  background:#f3f6fa!important;
  box-shadow:none!important;
}
body.app-ui.search-engines-v261-page .engine-region-search-wrap-v261>input[type="text"]:focus{
  outline:0!important;
  background:#eef4fa!important;
  box-shadow:0 0 0 3px rgba(55,126,209,.08)!important;
}

/* Account balance and account navigation shared by all application headers. */
.header-balance{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 11px;border-radius:11px;background:#f3f6fa;color:#29384d;font-size:13px;white-space:nowrap;transition:background .15s,color .15s}
.header-balance:hover{background:#eaf0f6;color:#1f2d40}
.header-balance .ui-icon{width:16px;height:16px;color:#6a7a91}
.header-balance-value{font-weight:500}
.dashboard-account .header-balance{min-height:34px}
.account-menu-link{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;border-radius:7px;color:#334258;font-size:13px}
.account-menu-link:hover{background:#f3f6fa;color:#1f2d40}
.account-menu-link .ui-icon{width:16px;height:16px}
@media(max-width:560px){.header-balance{padding:7px 9px}.header-balance-label{display:none}}

/* Shared workspace rhythm for Overview, Checks, AI, Competitors and SERP analysis.
   Page CSS owns layout details; common surfaces and control geometry live here. */
body.app-ui .workspace-page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  width:100%;
  margin:0 0 18px;
}
body.app-ui .workspace-page-head>div:first-child{min-width:0}
body.app-ui .workspace-page-head h1{margin:2px 0 6px;font-size:26px;line-height:1.2;letter-spacing:-.018em}
body.app-ui .workspace-page-head p{margin:0;max-width:840px;color:#748399;font-size:13px;line-height:1.5}
body.app-ui .workspace-eyebrow{
  display:block;
  margin:0 0 4px;
  color:#8290a4;
  font-size:10px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:.055em;
  text-transform:uppercase;
}
body.app-ui .workspace-toolbar{
  border:1px solid #dfe7f0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 2px 8px rgba(34,52,78,.025);
}
body.app-ui .workspace-toolbar .ui-select-trigger{min-height:40px!important}
body.app-ui .workspace-toolbar input[type="search"]{min-height:40px}
body.app-ui .workspace-kpi-grid{gap:10px;margin-bottom:14px}
body.app-ui .workspace-kpi-grid>*{
  min-width:0;
  min-height:94px;
  border:1px solid #e2e9f1;
  border-radius:13px;
  background:#fff;
  box-shadow:0 2px 8px rgba(34,52,78,.025);
}
body.app-ui .workspace-kpi-grid>*>span:first-child{
  color:#75849a;
  font-size:11px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
}
body.app-ui .workspace-kpi-grid>*>strong{color:#24344a;font-size:22px;line-height:1.1;font-weight:600}
body.app-ui .workspace-kpi-grid>*>small{color:#8593a5;font-size:11px}
body.app-ui .workspace-data-card{
  overflow:hidden;
  border:1px solid #e2e9f1;
  border-radius:14px;
  background:#fff;
  box-shadow:0 2px 8px rgba(34,52,78,.025);
}
body.app-ui .workspace-data-card .tabulator{border:0!important}
body.app-ui .workspace-data-card .tabulator-header{border-bottom:1px solid #e2e9f1!important;background:#fbfcfe!important}
body.app-ui .workspace-empty-card{border:1px solid #e2e9f1;border-radius:14px;background:#fff;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui .workspace-empty-state{padding:30px 20px;color:#748399;font-size:13px;line-height:1.5;text-align:center}
body.app-ui .workspace-empty-state b,
body.app-ui .workspace-empty-state h2{color:#2d3d53;font-size:15px;font-weight:600}
body.app-ui .workspace-empty-state p{max-width:540px;margin:6px auto 0}

/* Group launch uses the same density as the other workspace controls. */
body.app-ui .group-check-page{max-width:none}
body.app-ui .group-check-page .group-launch-card{border-color:#e2e9f1;border-radius:14px;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui .group-check-page .launch-card-head{padding:17px 20px 13px}
body.app-ui .group-check-page .launch-card-head h2{font-size:16px}
body.app-ui .group-check-page .launch-sources{padding:14px 20px 0}
body.app-ui .group-check-page .source-choice{min-height:54px;padding:8px 11px;border-color:#e2e9f1;border-radius:10px;box-shadow:none}
body.app-ui .group-check-page .source-choice:has(input:focus-visible){outline:0;box-shadow:0 0 0 3px rgba(55,126,209,.14)}
body.app-ui .group-check-page .source-choice:has(input:checked){border-color:#b9d1ee;background:#f3f8fe}
body.app-ui .group-check-page .launch-controls-row{padding:13px 20px 16px}
body.app-ui .group-check-page .launch-note{font-size:11px;line-height:1.35}
body.app-ui .group-check-page .group-quote{border-color:#e2e9f1;border-radius:12px}

/* Checks form and history occupy the same working width. */
body.app-ui .checks-control-panel-v265,
body.app-ui .checks-v241-history{width:100%;max-width:none;border-color:#e2e9f1;border-radius:14px;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui .checks-control-launch-v265{padding:17px 20px}
body.app-ui .checks-control-panel-v265 .check-start-head-v259{padding-bottom:12px}
body.app-ui .checks-history-toolbar{padding:15px 20px;border-radius:14px 14px 0 0}
body.app-ui .checks-v241-table thead th{height:42px;background:#fbfcfe}

/* AI metrics: two primary outcomes, supporting counts underneath. */
body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel{grid-column:span 1;padding:15px}
body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel:nth-child(-n+2){grid-column:span 3;background:#fbfdff}
body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel:nth-child(n+3){grid-column:span 2}
body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel:nth-child(-n+2) strong{font-size:25px}
body.app-ui.alice-ai-page .alice-ai-toolbar{padding:15px 17px}
body.app-ui.alice-ai-page .alice-ai-grid-toolbar{min-height:58px;padding:10px 16px}
body.app-ui.alice-ai-page .alice-ai-grid-toolbar input{min-height:38px}

/* Competitor metrics become scan-friendly cards, like the other analytics pages. */
body.app-ui.qv-analytics-page .qv-competitors-toolbar-card.workspace-toolbar{margin-bottom:14px;border-color:#dfe7f0;border-radius:14px;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui.qv-analytics-page .qv-kpi-strip.workspace-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:0;background:transparent;box-shadow:none}
body.app-ui.qv-analytics-page .qv-kpi-strip.workspace-kpi-grid>div{display:flex;flex-direction:column;justify-content:center;padding:13px 15px;border:1px solid #e2e9f1}
body.app-ui.qv-analytics-page .qv-kpi-strip.workspace-kpi-grid>div:nth-child(2),
body.app-ui.qv-analytics-page .qv-kpi-strip.workspace-kpi-grid>div:nth-child(5){background:#fbfdff}
body.app-ui.qv-analytics-page .qv-grid-shell.workspace-data-card{border-color:#e2e9f1;border-radius:14px;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui.qv-analytics-page .qv-grid-head{min-height:64px;padding:12px 16px;background:#fff}
body.app-ui.qv-analytics-page .qv-grid-controls{min-height:50px;padding:9px 16px}

/* Cannibalization shares the same context and metric surfaces. */
body.app-ui.cannibalization-page .cann-filter-panel.workspace-toolbar{margin-bottom:14px;border-color:#dfe7f0;border-radius:14px;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui.cannibalization-page .cann-filter-grid label{padding:12px 15px}
body.app-ui.cannibalization-page .cann-kpi-grid.workspace-kpi-grid .cann-kpi{padding:15px}
body.app-ui.cannibalization-page .cann-kpi-grid.workspace-kpi-grid .cann-kpi::before{display:none}
body.app-ui.cannibalization-page .cann-kpi-grid.workspace-kpi-grid .cann-kpi.has-issue strong{color:#c84851}
body.app-ui.cannibalization-page .cann-kpi-grid.workspace-kpi-grid .cann-kpi.has-warning strong{color:#9d691c}
body.app-ui.cannibalization-page .cann-kpi-grid.workspace-kpi-grid .cann-kpi.is-clear strong{color:#24344a}
body.app-ui.cannibalization-page .cann-empty{padding:20px 16px}
body.app-ui.cannibalization-page .cann-empty-main{padding:32px 20px}
body.app-ui.cannibalization-page .cann-empty-main .cann-empty-icon .ui-icon{width:22px;height:22px}
body.app-ui.cannibalization-page .cann-signal-panel{border-color:#e2e9f1;border-radius:14px;box-shadow:0 2px 8px rgba(34,52,78,.025)}
body.app-ui.cannibalization-page .cann-panel-head{min-height:64px;padding:12px 16px}

@media(max-width:1100px){
  body.app-ui.qv-analytics-page .qv-kpi-strip.workspace-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel,
  body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel:nth-child(-n+2),
  body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel:nth-child(n+3){grid-column:span 1}
  body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid>.panel:last-child{grid-column:1/-1}
}
@media(max-width:700px){
  body.app-ui .workspace-page-head{flex-direction:column;gap:12px}
  body.app-ui .workspace-page-head h1{font-size:23px}
  body.app-ui .group-check-page .launch-card-head{padding:15px}
  body.app-ui .group-check-page .launch-sources{padding:14px 15px 0}
  body.app-ui .group-check-page .launch-controls-row{padding:14px 15px}
  body.app-ui .checks-control-launch-v265{padding:15px}
}
@media(max-width:520px){
  body.app-ui.alice-ai-page .alice-ai-kpis.workspace-kpi-grid,
  body.app-ui.qv-analytics-page .qv-kpi-strip.workspace-kpi-grid{grid-template-columns:1fr 1fr}
}
