:root{--blue:#2563eb;--blue-strong:#165be6;--blue-soft:#eaf2ff;--ink:#111827;--ink-soft:#4b5563;--muted:#7b8494;--line:#d9e0ea;--line-soft:#e8edf4;--canvas:#f5f8fc;--surface:#ffffff;--sidebar:#071421;--sidebar-2:#111d2b;--green:#16a34a;--red:#ef3340;--shadow:0 14px 36px rgba(15,23,42,0.08)}*{box-sizing:border-box}html{background:var(--canvas);scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#fbfdff 0,var(--canvas) 34%,#eef4fb 100%);color:var(--ink);font-family:SF Pro Text,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;letter-spacing:0;line-height:1.5}button,input,select{font:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 70%,white);outline-offset:3px}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--sidebar) 0,var(--sidebar-2) 48%,#0a121d 100%);border-right:1px solid rgba(255,255,255,.09);color:#d6e0ee;display:flex;flex-direction:column;height:100vh;padding:18px 12px 22px;position:-webkit-sticky;position:sticky;top:0}.brand{align-items:center;color:#ffffff;display:flex;font-size:19px;font-weight:760;gap:10px;height:38px;margin:0 0 32px}.brand-mark{align-items:center;background:linear-gradient(135deg,#2f7df6,#7dd3fc);border-radius:10px;display:inline-flex;height:30px;justify-content:center;width:30px}.nav{flex-direction:column;gap:8px}.nav,.nav a{display:flex}.nav a{align-items:center;border-radius:8px;color:#b7c3d6;font-size:15px;font-weight:650;gap:12px;height:46px;padding:0 14px;transition:background .18s ease,color .18s ease,transform .18s ease}.nav a.active,.nav a:hover{background:linear-gradient(135deg,#1d5fd7,#104aa6);color:#ffffff;transform:translateX(2px)}.nav-icon,.topbar-icon{fill:none;height:20px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9;width:20px}.nav-icon path:first-child{fill:currentColor;opacity:.1}.sidebar-footer{align-items:center;border-top:1px solid rgba(255,255,255,.12);display:flex;gap:12px;margin-top:auto;padding:18px 8px 0}.sidebar-footer span,.sidebar-footer strong{display:block}.sidebar-footer strong{color:#ffffff;font-size:13px}.sidebar-footer span{color:#9fb0c5;font-size:12px}.workspace-dot{background:linear-gradient(135deg,#d8dee9,#5f6d7f);border-radius:50%;height:34px;width:34px}.workspace{min-width:0;padding:22px 24px 32px}.topbar{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin:0 0 22px}.topbar h1{font-size:30px;letter-spacing:0;line-height:1.1;margin:0}.topbar p{color:var(--ink-soft);font-size:15px;margin:7px 0 0}.topbar-actions{align-items:center;display:flex;gap:12px}.topbar-actions button{align-items:center;background:transparent;border:0;border-radius:10px;color:var(--ink);cursor:pointer;display:inline-flex;height:34px;justify-content:center;min-width:34px;padding:0 8px}.topbar-actions button:hover{background:rgba(37,99,235,.08)}.refresh{color:var(--ink-soft);font-size:13px;white-space:nowrap}.notification{position:relative}.notification span{align-items:center;background:var(--red);border:2px solid var(--canvas);border-radius:999px;color:#ffffff;display:inline-flex;font-size:10px;font-weight:800;height:18px;justify-content:center;min-width:18px;position:absolute;right:0;top:-4px}.avatar{background:#0f172a!important;color:#ffffff!important;font-weight:800}.filter-bar,.metric-card,.panel{background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.filter-bar{border-radius:10px;display:flex;justify-content:space-between;margin:0 0 12px;padding:14px 16px}.filter-bar,.filter-form{align-items:flex-end;gap:16px}.filter-form{display:grid;flex:1 1;grid-gap:16px;grid-template-columns:repeat(4,minmax(130px,1fr)) auto auto}.data-notice{background:#eef6ff;border:1px solid #bfdbfe;border-radius:10px;color:#1d4ed8;font-size:13px;font-weight:650;margin:0 0 12px;padding:10px 14px}.data-notice.unavailable{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.data-notice.live{background:#f0f9ff;border-color:#bae6fd;color:#0f4c81}.empty-state{align-items:center;border:1px dashed var(--line);border-radius:10px;color:var(--muted);display:flex;font-weight:650;justify-content:center;min-height:180px;padding:24px;text-align:center}.filter-item{display:grid;grid-gap:7px;gap:7px}.filter-item span{color:var(--ink-soft);font-weight:700}.filter-item input,.filter-item select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff;border:1px solid var(--line);border-radius:6px;color:var(--ink);height:36px;padding:0 34px 0 12px;width:100%}.ghost-button,.primary-button{border-radius:6px;cursor:pointer;font-weight:750;height:36px;padding:0 18px}.primary-button{background:var(--blue-strong);border:1px solid var(--blue-strong);color:#ffffff}.ghost-button{align-items:center;background:#ffffff;border:1px solid var(--line);color:var(--ink-soft);display:inline-flex;justify-content:center}.danger-button{border-color:#fecaca;color:#b91c1c}.clear-data-action{align-items:center;display:flex;gap:10px;margin-left:auto}.clear-data-action span{color:var(--ink-soft);font-size:12px;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0 0 12px}.metric-card{min-height:138px;padding:16px 20px 10px}.metric-card:first-child{border-radius:10px 0 0 10px}.metric-card:last-child{border-radius:0 10px 10px 0}.metric-card+.metric-card{border-left:0}.metric-card span{color:var(--ink-soft);font-weight:700}.metric-card strong{display:block;font-size:26px;letter-spacing:0;margin:8px 0 3px}.metric-card p{color:var(--muted);margin:0}em{font-style:normal}.up{color:var(--red)}.down,.success{color:var(--green)}.danger{color:var(--red)}.sparkline{display:block;height:42px;margin-top:6px;width:100%}.sparkline-line{fill:none;stroke:var(--blue);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5;vector-effect:non-scaling-stroke}.sparkline-area{fill:rgba(37,99,235,.08)}.main-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1.75fr) minmax(360px,.8fr);margin:0 0 12px}.bottom-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(360px,.86fr)}.rank-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.capability-summary{margin:0 0 12px}.capability-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.capability-strip>div{border-right:1px solid var(--line-soft);min-width:0;padding:16px 18px}.capability-strip>div:last-child{border-right:0}.capability-strip small,.capability-strip span{color:var(--ink-soft);display:block}.capability-strip strong{display:block;font-size:24px;margin:4px 0}.capability-strip small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capability-pills{border-top:1px solid var(--line-soft);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.capability-pill{display:grid;grid-gap:4px;gap:4px;min-width:0;padding:13px 18px}.capability-pill+.capability-pill{border-left:1px solid var(--line-soft)}.capability-pill span{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capability-pill em,.capability-state{font-weight:750}.capability-pill.supported em,.capability-state.supported{color:var(--green)}.capability-pill.partial em,.capability-state.partial{color:#b45309}.capability-pill.no_data em,.capability-state.no_data{color:var(--muted)}.capability-page{display:grid;grid-gap:12px;gap:12px}.capability-manifest,.capability-page-summary,.capability-page>.rank-page-header{background:var(--surface);border:1px solid var(--line);border-radius:8px}.capability-page-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.capability-manifest-list{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.capability-manifest{min-width:0;overflow:hidden}.capability-manifest>header{align-items:center;border-bottom:1px solid var(--line-soft);display:flex;gap:16px;justify-content:space-between;padding:14px 18px}.capability-manifest>header div{display:grid;grid-gap:2px;gap:2px}.capability-manifest>header div:last-child{color:var(--ink-soft);justify-items:end}.capability-table{min-width:780px}.capability-table code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.full-row{grid-column:1/-1}.panel{border-radius:10px;overflow:hidden}.panel-title{align-items:center;border-bottom:1px solid var(--line-soft);display:flex;gap:12px;min-height:54px;padding:0 18px}.panel-title h2{font-size:18px;letter-spacing:0;margin:0}.panel-title span{color:var(--ink-soft);margin-left:auto}.panel-title a{color:var(--blue);font-weight:750;margin-left:auto}.chart-panel{min-height:320px}.trend-chart{height:280px;padding:20px 28px 18px;position:relative}.bars{align-items:flex-end;border-bottom:1px solid #aeb7c4;display:grid;grid-gap:34px;gap:34px;grid-template-columns:repeat(7,1fr);height:238px;padding:0 18px;position:relative;z-index:1}.bars:before{background:repeating-linear-gradient(180deg,transparent 0 48px,rgba(148,163,184,.22) 49px 50px);content:"";inset:0 18px 28px;pointer-events:none;position:absolute;z-index:-1}.bar-group{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:flex-end;min-width:0}.bar{background:linear-gradient(180deg,#60a5fa,#1f6feb);border-radius:3px 3px 0 0;display:block;width:min(46px,70%)}.bar-group small{color:var(--ink-soft)}.line-chart{inset:20px 28px 48px;pointer-events:none;position:absolute}.data-table{border-collapse:collapse;min-width:920px;width:100%}.wide-table{min-width:1380px}.table-scroll{overflow-x:auto;overflow-y:auto;max-height:520px}.rank-table-scroll{max-height:none}.data-table td,.data-table th{border-bottom:1px solid var(--line-soft);padding:10px 18px;text-align:left;white-space:nowrap}.data-table th{color:var(--ink-soft);font-size:12px;font-weight:760}.data-table td{font-size:13px;vertical-align:top}.cell-link,.cell-text{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-link{color:var(--blue)}.cell-link.multiline,.cell-text.multiline{max-width:340px;overflow-wrap:anywhere;white-space:normal;word-break:break-word}.full-text-table .cell-link,.full-text-table .cell-text,.rank-page-table .cell-link,.rank-page-table .cell-text{max-width:none;overflow:visible;text-overflow:clip;white-space:nowrap}.full-text-table .cell-link.multiline,.full-text-table .cell-text.multiline,.rank-page-table .cell-link.multiline,.rank-page-table .cell-text.multiline{max-width:none;overflow-wrap:normal;white-space:nowrap;word-break:normal}.cell-domain{font-weight:700}.cell-code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.cell-muted{color:var(--muted)}.data-table.compact{table-layout:auto}.data-table.compact td,.data-table.compact th{padding-left:12px;padding-right:12px}.data-table tr:last-child td{border-bottom:0}.app-icon,.platform-logo{align-items:center;border-radius:7px;color:#ffffff;display:inline-flex;font-size:10px;font-weight:850;height:24px;justify-content:center;margin-right:10px;width:24px}.severity{border-radius:50%;display:inline-block;height:8px;margin-right:9px;width:8px}.severity.high{background:var(--red)}.severity.medium{background:#f59e0b}.severity.low{background:var(--green)}.app-list{padding:4px 18px 14px}.app-row{align-items:center;border-bottom:1px solid var(--line-soft);display:grid;grid-gap:12px;gap:12px;grid-template-columns:34px minmax(150px,1fr) 86px 98px 58px;min-height:49px}.app-row:last-child{border-bottom:0}.app-icon{background:linear-gradient(135deg,#2563eb,#22c55e)}.app-name span,.app-name strong{display:block}.app-name span,.app-row>span{color:var(--ink-soft)}.app-row em{color:var(--green);font-weight:760}.landing-card{min-height:260px}.landing-bars{display:grid;grid-gap:16px;gap:16px;padding:18px}.landing-row{display:grid;grid-gap:9px;gap:9px;grid-template-columns:minmax(0,1fr) 110px}.landing-row>div:first-child{min-width:0}.landing-row span,.landing-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing-row span{color:var(--ink-soft);font-size:12px}.landing-meter{background:#e7eef8;border-radius:999px;grid-column:1/2;height:8px;overflow:hidden}.landing-meter span{background:linear-gradient(90deg,#2563eb,#7dd3fc);display:block;height:100%}.landing-row b{align-self:flex-end;font-size:13px;grid-column:2;grid-row:1/3;justify-self:end}.debug-page{margin:0 auto;max-width:1180px;padding:26px}.debug-header{margin-bottom:18px}.debug-header a{color:var(--blue);font-weight:750}.debug-header h1{margin:10px 0 6px}.debug-header p{color:var(--ink-soft);margin:0}.debug-compare-list{display:grid;grid-gap:14px;gap:14px;padding:16px}.debug-compare-card{border:1px solid var(--line-soft);border-radius:8px;padding:14px}.debug-compare-card header{align-items:center;display:flex;justify-content:space-between}.debug-compare-card p{color:var(--ink-soft);margin:6px 0 12px}.debug-table{table-layout:auto}.rank-page-panel{min-height:0}.rank-page-header{align-items:flex-start;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;gap:24px;padding:18px 20px}.rank-page-header a{color:var(--blue);font-weight:750}.rank-page-header h1{font-size:26px;margin:8px 0 4px}.rank-page-header p{color:var(--ink-soft);margin:0}.rank-active-filter{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.rank-active-filter strong{font-size:14px}.rank-active-filter a{color:var(--blue);font-weight:700}.rank-page-meta{align-items:flex-end;display:grid;justify-items:end}.rank-page-meta strong{font-size:30px}.rank-page-meta span{color:var(--ink-soft)}.rank-page-table{min-width:1600px}.rank-detail-section{border-top:1px solid var(--line-soft);padding:16px 18px 8px}.rank-detail-header{margin-bottom:12px}.rank-detail-header h2{font-size:18px;margin:0 0 6px}.rank-detail-header p{color:var(--ink-soft);margin:0}.rank-detail-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}.rank-detail-panel{overflow:visible}.pagination{align-items:center;border-top:1px solid var(--line-soft);display:flex;gap:14px;justify-content:flex-end;padding:14px 18px}.pagination a{border:1px solid var(--line);border-radius:6px;color:var(--ink);font-weight:750;padding:7px 12px}.pagination a.disabled{color:var(--muted);pointer-events:none}@media (max-width:1200px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.brand span:last-child,.nav span,.sidebar-footer div{display:none}.brand,.nav a,.sidebar-footer{justify-content:center}.bottom-grid,.capability-manifest-list,.capability-pills,.capability-strip,.filter-bar,.filter-form,.main-grid,.metric-grid,.rank-grid{grid-template-columns:1fr 1fr}.chart-panel,.landing-card{grid-column:1/-1}}@media (max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:static}.nav{flex-direction:row;overflow-x:auto}.nav a{min-width:120px}.workspace{padding:18px 14px 28px}.topbar,.topbar-actions{align-items:flex-start;flex-direction:column}.bottom-grid,.capability-manifest-list,.capability-pills,.capability-strip,.filter-bar,.filter-form,.main-grid,.metric-grid,.rank-grid{grid-template-columns:1fr}.capability-pill+.capability-pill,.capability-strip>div{border-left:0;border-right:0;border-top:1px solid var(--line-soft)}.filter-bar{align-items:stretch;flex-direction:column}.metric-card,.metric-card:first-child,.metric-card:last-child{border-radius:10px}.metric-card+.metric-card{border-left:1px solid var(--line)}}.ads-workspace{min-width:0}.ads-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:24px 28px 18px;border-bottom:1px solid var(--line,#e5e7eb)}.ads-heading h1{margin:2px 0 6px;font-size:28px;letter-spacing:0}.ads-heading p{margin:0;color:#667085}.ads-heading .eyebrow{color:#d92d20;font-size:12px;font-weight:700;text-transform:uppercase}.ads-time-presets{display:flex;border:1px solid #d0d5dd;border-radius:6px;overflow:hidden;flex-shrink:0}.ads-time-presets a{color:#344054;padding:8px 11px;text-decoration:none;border-right:1px solid #d0d5dd;background:#fff;font-size:13px}.ads-time-presets a:last-child{border-right:0}.ads-time-presets a.active{color:#fff;background:#101828}.ads-filter{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(140px,1fr) repeat(4,minmax(110px,.75fr)) minmax(170px,1fr) auto auto;grid-gap:10px;gap:10px;align-items:end;padding:16px 28px;background:#f8fafc;border-bottom:1px solid #e5e7eb}.ads-filter label{display:grid;grid-gap:5px;gap:5px;min-width:0;color:#475467;font-size:12px;font-weight:600}.ads-filter input,.ads-filter select{width:100%;min-width:0;height:36px;border:1px solid #d0d5dd;border-radius:5px;background:#fff;padding:0 9px;color:#101828}.ads-filter button,.ads-filter>a{display:inline-flex;align-items:center;justify-content:center;height:36px;border-radius:5px;padding:0 14px;text-decoration:none;font-weight:600}.ads-filter button{border:1px solid #d92d20;color:#fff;background:#d92d20}.ads-filter>a{border:1px solid #d0d5dd;color:#344054;background:#fff}.ads-message{margin:16px 28px 0;padding:10px 12px;border-left:3px solid #f79009;background:#fffaeb;color:#93370d}.ads-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid #e5e7eb}.ads-summary>div{display:grid;grid-gap:3px;gap:3px;padding:17px 20px;border-right:1px solid #e5e7eb}.ads-summary small,.ads-summary span{color:#667085;font-size:12px}.ads-summary strong{font-size:21px;letter-spacing:0}.ads-content{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:520px}.ads-table-wrap{min-width:0;padding:20px 28px 28px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{margin:0;font-size:16px}.section-title span{color:#667085;font-size:12px}.ads-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.ads-table th{color:#667085;background:#f9fafb;text-align:left;font-size:11px;font-weight:700;padding:9px 8px;border:1px solid #eaecf0}.ads-table td{overflow-wrap:anywhere;vertical-align:top;padding:10px 8px;border:1px solid #eaecf0;color:#344054}.ads-table td small,.ads-table td strong{display:block}.ads-table td small{margin-top:3px;color:#667085}.ads-detail code,.ads-table code,.source-row code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.ads-table a{color:#175cd3;font-weight:600}.status-ok{color:#027a48!important}.status-warn{color:#b54708!important}.lifecycle-status{display:inline-block;padding:3px 6px;border-radius:4px;background:#eef4ff;color:#3538cd;font-size:11px}.funnel-cell{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.target-cell{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ads-empty{padding:36px 12px;text-align:center;color:#667085;border:1px solid #eaecf0;border-top:0}.ads-pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:14px}.ads-pagination a{color:#175cd3;text-decoration:none}.ads-pagination a[aria-disabled=true]{color:#98a2b3;pointer-events:none}.ads-side{border-left:1px solid #e5e7eb;background:#fcfcfd}.ads-side>section{padding:20px;border-bottom:1px solid #e5e7eb}.source-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:3px 8px;gap:3px 8px;padding:9px 0;border-top:1px solid #eaecf0}.source-row small{grid-column:1/-1;color:#667085}.ads-detail-placeholder p,.muted{color:#667085;line-height:1.5}.ads-detail dl{display:grid;grid-template-columns:92px minmax(0,1fr);grid-gap:8px;gap:8px;margin:0}.ads-detail dt{color:#667085;font-size:12px}.ads-detail dd{margin:0;min-width:0;overflow-wrap:anywhere}.ads-detail dd small{display:block;color:#667085;margin-top:3px}.ads-detail h3{margin:20px 0 8px;font-size:13px}.ads-detail ul{margin:0;padding-left:18px}.ads-detail .section-title a{color:#344054;font-size:22px;text-decoration:none}.event-timeline{margin:0;padding-left:20px}.event-timeline li{padding:5px 0 10px}.event-timeline code,.event-timeline small,.event-timeline span{display:block;margin-top:2px;color:#667085;overflow-wrap:anywhere}@media (max-width:1280px){.ads-filter{grid-template-columns:repeat(4,minmax(130px,1fr))}.ads-summary{grid-template-columns:repeat(3,1fr)}.ads-content{grid-template-columns:1fr}.ads-side{border-left:0;border-top:1px solid #e5e7eb}}@media (max-width:760px){.ads-heading{align-items:stretch;flex-direction:column;padding:18px 16px}.ads-time-presets{overflow-x:auto}.ads-filter{grid-template-columns:1fr 1fr;padding:14px 16px}.ads-summary{grid-template-columns:repeat(2,1fr)}.ads-table-wrap{padding:16px;overflow-x:auto}.ads-table{min-width:900px}.ads-content{display:block}}