PageSourceSearch

https://adloura.com/chunk-TCYIAEBK.js

js adloura.com collected 2026-10-02 09:55:37 UTC 19,195 bytes, 1 lines download raw bytes

1import{a as J}from"./chunk-2UUM4CZG.js";import{B as H,D as K,M as X,f as L,g as N,m as U,n as G,o as V,z as B}from"./chunk-BVYE6SD7.js";import"./chunk-LWGBGNSS.js";import{Aa as m,Ba as g,Ca as w,G as h,H as P,Ka as A,Na as k,Oa as T,R as I,S as n,V as b,Va as q,Wa as F,X as M,aa as _,ab as j,da as l,db as $,ea as a,fa as i,ga as x,ma as C,mb as z,na as v,oa as c,pb as D,sc as R,xa as O,ya as y,za as r}from"./chunk-LWDTIRCY.js";import"./chunk-YRDAQHOH.js";import"./chunk-M74NKZE7.js";import"./chunk-KI3OGBFQ.js";import"./chunk-NPIB2GR2.js";import"./chunk-QUJFQN2Y.js";import"./chunk-MRPSBUSM.js";import"./chunk-3X6G3RZB.js";import"./chunk-RXTQUOQ3.js";import"./chunk-66HF336T.js";import"./chunk-JNSODYJ3.js";import"./chunk-ELADHFWA.js";import"./chunk-7FY2OE2O.js";import"./chunk-AJKMVFFX.js";import"./chunk-WLYAAB7T.js";import"./chunk-DVXF2QER.js";import"./chunk-MTHZ7MWU.js";import"./chunk-WI5MSH4N.js";import"./chunk-BLWVX4KK.js";import"./chunk-CKP3SGE2.js";import"./chunk-ZSIIJSG4.js";import"./chunk-CDZFCBFW.js";import"./chunk-E2CLONXR.js";import"./chunk-KRDHHS7Z.js";import"./chunk-JVTPOORY.js";import"./chunk-CLDSZD2A.js";import"./chunk-M2X7KQLB.js";import"./chunk-LRFGNCHE.js";import"./chunk-OZYWYLNK.js";import"./chunk-42C7ZIID.js";import{a as E,b as S}from"./chunk-JHI3MBHO.js";var Q=()=>[];function W(t,o){if(t&1&&(a(0,"div",11),r(1),i()),t&2){let e=c();n(),m(e.error)}}function Y(t,o){t&1&&(a(0,"div",12),x(1,"ion-spinner"),i())}function Z(t,o){if(t&1&&(a(0,"span",23),r(1),i()),t&2){let e=o.$implicit;n(),m(e)}}function ee(t,o){if(t&1){let e=C();a(0,"tr",17),v("click",function(){let p=h(e).$implicit,s=c(2);return P(s.open(p))}),a(1,"td",18),r(2),i(),a(3,"td",19),r(4),i(),a(5,"td"),r(6),i(),a(7,"td"),r(8),i(),a(9,"td"),r(10),i(),a(11,"td",18),r(12),i(),a(13,"td"),r(14),i(),a(15,"td",20),_(16,Z,2,1,"span",21),i(),a(17,"td",22),r(18),i()()}if(t&2){let e=o.$implicit,d=c(2);O("bad-row",e.verdict==="DEGRADED"),n(2),m(e.projectId),n(2),m(e.productName||"\u2014"),n(2),m(e.adType||"?"),n(2),m(e.subjectType||"?"),n(2),m(e.language||"?"),n(2),m(e.sceneCount),n(),y(d.verdictClass(e.verdict)),n(),m(e.verdict||"?"),n(2),l("ngForOf",e.findings||A(13,Q)),n(2),m(e.createdAt)}}function te(t,o){if(t&1&&(a(0,"div",13)(1,"h3"),r(2),i(),a(3,"div",14)(4,"table")(5,"tr")(6,"th"),r(7,"Project"),i(),a(8,"th"),r(9,"Product"),i(),a(10,"th"),r(11,"Type"),i(),a(12,"th"),r(13,"Subject"),i(),a(14,"th"),r(15,"Lang"),i(),a(16,"th"),r(17,"Scenes"),i(),a(18,"th"),r(19,"Verdict"),i(),a(20,"th"),r(21,"Findings"),i(),a(22,"th"),r(23,"When"),i()(),_(24,ee,19,14,"tr",15),i()(),a(25,"p",16),r(26,"Click any row for the full scene-by-scene breakdown: frames, Gemini script, FLUX prompts, user inputs."),i()()),t&2){let e=c();n(2),g("Recent Ads (",e.ads.length,")"),n(22),l("ngForOf",e.ads)}}function ie(t,o){t&1&&(a(0,"div",12),x(1,"ion-spinner"),i())}function ne(t,o){if(t&1&&(a(0,"div",34),x(1,"video",35),i()),t&2){let e=c(2);n(),l("src",e.videoUrlOf(e.detail),I)}}function ae(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Product"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.productName)}}function re(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Description"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.productDescription)}}
1function oe(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Audience"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.targetAudience)}}function de(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Tone"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.tone)}}function le(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Language"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.language)}}function ce(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Goal"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.adGoal)}}function pe(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Subject"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.subjectType)}}function se(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Ad Type"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.adType)}}function me(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Duration"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.duration,"s")}}function ge(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"Aspect"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.aspectRatio)}}function _e(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"CTA"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.callToAction)}}function xe(t,o){if(t&1&&(a(0,"div")(1,"span",39),r(2,"URL"),i(),r(3),i()),t&2){let e=c().ngIf;n(3),g(" ",e.productUrl)}}function fe(t,o){t&1&&(a(0,"div")(1,"span",39),r(2,"Has Photo"),i(),r(3," yes (Kontext composite)"),i())}function ve(t,o){if(t&1&&(a(0,"div",36)(1,"h4"),r(2,"User Input (cfg)"),i(),a(3,"div",37),_(4,ae,4,1,"div",38)(5,re,4,1,"div",38)(6,oe,4,1,"div",38)(7,de,4,1,"div",38)(8,le,4,1,"div",38)(9,ce,4,1,"div",38)(10,pe,4,1,"div",38)(11,se,4,1,"div",38)(12,me,4,1,"div",38)(13,ge,4,1,"div",38)(14,_e,4,1,"div",38)(15,xe,4,1,"div",38)(16,fe,4,0,"div",38),i()()),t&2){let e=o.ngIf;n(4),l("ngIf",e.productName),n(),l("ngIf",e.productDescription),n(),l("ngIf",e.targetAudience),n(),l("ngIf",e.tone),n(),l("ngIf",e.language),n(),l("ngIf",e.adGoal),n(),l("ngIf",e.subjectType),n(),l("ngIf",e.adType),n(),l("ngIf",e.duration),n(),l("ngIf",e.aspectRatio),n(),l("ngIf",e.callToAction),n(),l("ngIf",e.productUrl),n(),l("ngIf",e.hasProduct)}}function ue(t,o){if(t&1&&(a(0,"span"),r(1),i()),t&2){let e=c(3);n(),g(' \u2014 "',e.detail.bundle.brandTagline,'"')}}function Ie(t,o){if(t&1&&(a(0,"div",36)(1,"h4"),r(2,"Brand Kit"),i(),a(3,"p",40),r(4),_(5,ue,2,1,"span",38),i()()),t&2){let e=c(2);n(4),g("Brand: ",e.detail.bundle.brandName," "),n(),l("ngIf",e.detail.bundle.brandTagline)}}function be(t,o){if(t&1&&(a(0,"div",40),r(1),i()),t&2){let e=o.$implicit;n(),m(e)}}function he(t,o){if(t&1&&(a(0,"div",41)(1,"h4"),r(2,"QC Findings"),i(),_(3,be,2,1,"div",42),i()),t&2){let e=c(2);n(3),l("ngForOf",e.findingsOf(e.detail))}}function Pe(t,o){if(t&1&&(a(0,"details",36)(1,"summary")(2,"h4",43),r(3,"Gemini Raw Response"),i()(),a(4,"pre",44),r(5),k(6,"json"),i()()),t&2){let e=c(2);n(5),m(T(6,1,e.detail.bundle.geminiRaw))}}function Ce(t,o){if(t&1&&(a(0,"span",55),r(1),i()),t&2){let e=c().$implicit;n(),m(e.role)}}function Oe(t,o){if(t&1&&(a(0,"span",55),r(1),i()),t&2){let e=c().$implicit;n(),m(e.model)}}function ye(t,o){if(t&1&&x(0,"img",56),t&2){let e=c(),d=e.$implicit,p=e.index,s=c(2);l("src",s.imageForScene(s.detail,d.i??p),I)("alt","scene "+((d.i??p)+1))}}function Ee(t,o){t&1&&(a(0,"div",57),r(1,"no frame"),i())}function Se(t,o){if(t&1&&(a(0,"p",58),r(1),i()),t&2){let e=c().$implicit;n(),g("Caption: ",e.caption)}}function Me(t,o){if(t&1&&(a(0,"p",59),r(1),i()),t&2){let e=c().$implicit;n(),g("lane: ",e.promptLane)}}function we(t,o){if(t&1&&(a(0,"span",62),r(1),i()),t&2){let e=o.$implicit;O("guard-fail",e.indexOf("fail")!==-1||e.indexOf("mismatch")!==-1),n(),m(e)}}function Ae(t,o){if(t&1&&(a(0,"div",60),_(1,we,2,3,"span",61),i()),t&2){let e=c().$implicit;n(),l("ngForOf",e.guards)}}function ke(t,o){if(t&1&&(a(0,"div",45)(1,"h4"),r(2),_(3,Ce,2,1,"span",46)(4,Oe,2,1,"span",46),i(),a(5,"div",47)(6,"div",48),_(7,ye,1,2,"img",49)(8,Ee,2,0,"div",50),i(),a(9,"div",51)(10,"div")(11,"h5"),r(12,"Narration"),i(),a(13,"p",40),r(14),i(),_(15,Se,2,1,"p",52),i(),a(16,"div")(17,"h5"),r(18,"Visual (Gemini authored)"),i(),a(19,"p",40),r(20),i()(),a(21,"div")(22,"h5"),r(23,"FLUX Prompt (final)"),i(),a(24,"p",40),r(25),i(),_(26,Me,2,1,"p",53),i()()(),_(27,Ae,2,1,"div",54),i()),t&2){let e=o.$implicit,d=o.index,p=c(2);n(2),g("Scene ",(e.i??d)+1," "),n(),l("ngIf",e.role),n(),l("ngIf",e.model),n(3),l("ngIf",p.imageForScene(p.detail,e.i??d)),n(),l("ngIf",!p.imageForScene(p.detail,e.i??d)),n(6),m(e.narration||"\u2014"),n(),l("ngIf",e.caption),n(5),m(e.visual||e.visualRaw||"\u2014"),n(5),m(e.promptFinal||"\u2014"),n(),l("ngIf",e.promptLane),n(),l("ngIf",e.guards==null?null:e.guards.length)}}function Te(t,o){if(t&1&&(a(0,"div",65),x(1,"img",56),a(2,"span",66),r(3),i()()),t&2){let e=o.$implicit;n(),l("src",e.url,I)("alt",e.label||"frame"),n(2),m(e.label||"scene "+e.i)}}function qe(t,o){if(t&1&&(a(0,"div",36)(1,"h4"),r(2),i(),a(3,"div",63),_(4,Te,4,3,"div",64),i()()),t&2){let e=c(2);n(2),g("All Frames (",e.imagesOf(e.detail).length,")"),n(2),l("ngForOf",e.imagesOf(e.detail))}}
1function Fe(t,o){if(t&1){let e=C();a(0,"div",24)(1,"div",25)(2,"div",26)(3,"div")(4,"h2"),r(5),i(),a(6,"p",22),r(7," verdict: "),a(8,"b"),r(9),i(),r(10),i()(),a(11,"ion-button",27),v("click",function(){h(e);let p=c();return P(p.closeDetail())}),x(12,"ion-icon",28),i()(),a(13,"div",29),_(14,ne,2,1,"div",30)(15,ve,17,13,"div",31)(16,Ie,6,2,"div",31)(17,he,4,1,"div",32)(18,Pe,7,3,"details",31)(19,ke,28,11,"div",33)(20,qe,5,2,"div",31),i()()()}if(t&2){let e=c();n(5),w("#",e.detail.projectId," \u2014 ",e.detail.productName||"Ad"),n(3),y(e.verdictClass(e.detail.verdict)),n(),m(e.detail.verdict),n(),g(" \xB7 ",e.detail.createdAt," "),n(4),l("ngIf",e.videoUrlOf(e.detail)),n(),l("ngIf",e.cfgOf(e.detail)),n(),l("ngIf",e.detail.bundle==null?null:e.detail.bundle.brandName),n(),l("ngIf",e.findingsOf(e.detail).length),n(),l("ngIf",e.detail.bundle==null?null:e.detail.bundle.geminiRaw),n(),l("ngForOf",e.scenesOf(e.detail)),n(),l("ngIf",e.imagesOf(e.detail).length)}}var Ge=(()=>{let o=class o{constructor(d,p,s){this.backend=d,this.router=p,this.route=s,this.loading=!1,this.error="",this.ads=[],this.detail=null,this.detailLoading=!1}ngOnInit(){this.load();let d=Number(this.route.snapshot.queryParamMap.get("project")||0);d>0&&this.open({projectId:d})}describe(d,p){let s=d?.status;return s===401||s===403?`${p}: not authorised (HTTP ${s}). Sign in as an admin account.`:s===0?`${p}: could not reach the API (network or CORS).`:s?`${p}: HTTP ${s} \u2014 ${d?.error?.error||d?.message||"server error"}`:`${p}: ${d?.error?.error||d?.message||"unknown error"}`}load(){this.loading=!0,this.error="",this.backend.getAdAuditList(40).subscribe({next:d=>{this.ads=d?.bundles||[],this.loading=!1},error:d=>{this.error=this.describe(d,"Could not load the ad list"),this.loading=!1}})}open(d){let p=d.projectId||d.project_id;p&&(this.detailLoading=!0,this.detail=null,this.error="",this.backend.getAdAuditDetail(p).subscribe({next:s=>{let f=s?.bundles||[];if(f.length){let u=f[0];this.detail=S(E({},u),{projectId:p,productName:d.productName||""})}else this.error=`No render audit stored for project ${p} \u2014 it is older than the audit retention window, or predates the audit store.`;this.detailLoading=!1},error:s=>{this.error=this.describe(s,`Could not load audit for project ${p}`),this.detailLoading=!1}}))}closeDetail(){this.detail=null}verdictClass(d){return d==="OK"?"ok":d==="DEGRADED"?"bad":""}scenesOf(d){return d?.bundle?.scenes||[]}imagesOf(d){return d?.bundle?.images||[]}findingsOf(d){return d?.bundle?.qc?.findings||[]}videoUrlOf(d){return d?.bundle?.outcome?.videoUrl||""}cfgOf(d){return d?.bundle?.cfg||{}}imageForScene(d,p){return this.imagesOf(d).find(u=>(u.i??u.idx)===p)?.url||""}back(){this.router.navigate(["/admin"])}};o.\u0275fac=function(p){return new(p||o)(b(J),b(D),b(z))},o.\u0275cmp=M({type:o,selectors:[["app-ad-inspector"]],decls:16,vars:5,consts:[["color","dark"],["slot","start"],[3,"click"],["name","arrow-back-outline"],["slot","end"],["name","refresh-outline"],[1,"ion-padding"],["class","err",4,"ngIf"],["class","center",4,"ngIf"],["class","card",4,"ngIf"],["class","overlay",4,"ngIf"],[1,"err"],[1,"center"],[1,"card"],[1,"tbl-wrap"],["class","row",3,"bad-row","click",4,"ngFor","ngForOf"],[1,"hint"],[1,"row",3,"click"],[1,"num"],[1,"ttl"],[1,"findings-cell"],["class","finding-pill",4,"ngFor","ngForOf"],[1,"dim"],[1,"finding-pill"],[1,"overlay"],[1,"sheet"],[1,"sheet-head"],["fill","clear",3,"click"],["name","close-outline"],[1,"sheet-body"],["class","player",4,"ngIf"],["class","block",4,"ngIf"],["class","block warn",4,"ngIf"],["class","scene",4,"ngFor","ngForOf"],[1,"player"],["controls","","preload","metadata","playsinline","",3,"src"],[1,"block"],[1,"cfg-grid"],[4,"ngIf"],[1,"lbl"],[1,"mono","small"],[1,"block","warn"],["class","mono small",4,"ngFor","ngForOf"],[2,"display","inline"],[1,"mono","small","gemini-raw"],[1,"scene"],["class","pill",4,"ngIf"],[1,"scene-grid"],[1,"frame"],[3,"src","alt",4,"ngIf"],["class","ph",4,"ngIf"],[1,"cols"],["class","mono small dim",4,"ngIf"],["class","mono tiny dim",4,"ngIf"],["class","guards",4,"ngIf"],[1,"pill"],[3,"src","alt"],[1,"ph"],[1,"mono","small","dim"],[1,"mono","tiny","dim"],[1,"guards"],["class","guard-pill",3,"guard-fail",4,"ngFor","ngForOf"],[1,"guard-pill"],[1,"frames-gallery"],["class","gallery-item",4,"ngFor","ngForOf"],[1,"gallery-item"],[1,"dim","tiny"]],template:function(p,s){p&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1)(3,"ion-button",2),v("click",function(){return s.back()}),x(4,"ion-icon",3),i()(),a(5,"ion-title"),r(6,"Ad Inspector"),i(),a(7,"ion-buttons",4)(8,"ion-button",2),v("click",function(){return s.load()}),x(9,"ion-icon",5),i()()()(),a(10,"ion-content",6),_(11,W,2,1,"div",7)(12,Y,2,0,"div",8)(13,te,27,2,"div",9)(14,ie,2,0,"div",8)(15,Fe,21,13,"div",10),i()),p&2&&(n(11),l("ngIf",s.error),n(),l("ngIf",s.loading),n(),l("ngIf",!s.loading&&!s.detail),n(),l("ngIf",s.detailLoa
1ding),n(),l("ngIf",s.detail))},dependencies:[$,q,F,R,X,L,N,U,G,V,B,H,K,j],styles:["[_nghost-%COMP%]{--qi-bg: var(--ion-background-color, #fff);--qi-fg: var(--ion-text-color, #1a1a1a);--qi-card: var(--ion-card-background, var(--ion-background-color, #fff));--qi-line: rgba(128, 128, 128, .28);--qi-muted: var(--ion-color-medium, #8a8a8a);--qi-hover: rgba(128, 128, 128, .12);--qi-warnbg: rgba(255, 196, 9, .12);--qi-danger: var(--ion-color-danger, #eb445a);--qi-ok: var(--ion-color-success, #2dd36f)}.card[_ngcontent-%COMP%]{background:var(--qi-card);color:var(--qi-fg);border:1px solid var(--qi-line);border-radius:12px;padding:14px;margin-bottom:16px}.card[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0 0 6px;font-size:15px;color:var(--qi-fg)}.hint[_ngcontent-%COMP%]{font-size:12px;color:var(--qi-muted);margin:4px 0 10px}.err[_ngcontent-%COMP%]{color:var(--qi-danger);font-size:13px;margin-bottom:10px}.center[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:24px}.tbl-wrap[_ngcontent-%COMP%]{overflow-x:auto}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:13px;min-width:900px;color:var(--qi-fg)}th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--qi-line);white-space:nowrap;color:inherit}th[_ngcontent-%COMP%]{font-weight:600;color:var(--qi-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}td.num[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums}td.ttl[_ngcontent-%COMP%]{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dim[_ngcontent-%COMP%]{color:var(--qi-muted)}tr.row[_ngcontent-%COMP%]{cursor:pointer}tr.row[_ngcontent-%COMP%]:hover   td[_ngcontent-%COMP%]{background:var(--qi-hover)}tr.bad-row[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:first-child{box-shadow:inset 3px 0 0 var(--qi-danger)}.ok[_ngcontent-%COMP%]{color:var(--qi-ok);font-weight:600}.bad[_ngcontent-%COMP%]{color:var(--qi-danger);font-weight:600}.findings-cell[_ngcontent-%COMP%]{max-width:300px;white-space:normal}.finding-pill[_ngcontent-%COMP%]{display:inline-block;font-size:10px;background:var(--qi-warnbg);color:var(--qi-fg);padding:1px 6px;border-radius:4px;margin:1px 2px}.overlay[_ngcontent-%COMP%]{position:fixed;inset:0;background:#0000008c;display:flex;align-items:flex-start;justify-content:center;z-index:50;padding:16px;overflow:hidden}.sheet[_ngcontent-%COMP%]{background:var(--qi-bg);color:var(--qi-fg);border:1px solid var(--qi-line);border-radius:14px;width:100%;max-width:1200px;box-shadow:0 12px 40px #0006;max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.sheet-head[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;border-bottom:1px solid var(--qi-line);position:sticky;top:0;background:var(--qi-bg);color:var(--qi-fg);border-radius:14px 14px 0 0;z-index:2}.sheet-head[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin:0;font-size:16px}.sheet-body[_ngcontent-%COMP%]{padding:14px 16px}.player[_ngcontent-%COMP%]{margin-bottom:14px}.player[_ngcontent-%COMP%]   video[_ngcontent-%COMP%]{width:100%;max-width:300px;border-radius:10px;background:#000;display:block}.block[_ngcontent-%COMP%]{margin-bottom:14px}.block[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{margin:0 0 6px;font-size:13.5px;color:var(--qi-fg)}.block.warn[_ngcontent-%COMP%]{background:var(--qi-warnbg);border-radius:8px;padding:10px}.cfg-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px;font-size:12px}.cfg-grid[_ngcontent-%COMP%]   .lbl[_ngcontent-%COMP%]{font-weight:600;color:var(--qi-muted);text-transform:uppercase;font-size:10px;display:block}.scene[_ngcontent-%COMP%]{border-top:1px solid var(--qi-line);padding-top:14px;margin-top:14px}.scene[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{margin:0 0 8px;font-size:13.5px;color:var(--qi-fg)}.scene-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:start}.frame[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;border-radius:8px;background:#000;display:block;aspect-ratio:9/16;object-fit:cover}.frame[_ngcontent-%COMP%]   .ph[_ngcontent-%COMP%]{width:100%;aspect-ratio:9/16;border-radius:8px;background:var(--qi-hover);display:flex;align-items:center;justify-content:center;color:var(--qi-muted);font-size:11px}.cols[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cols[_ngcontent-%COMP%]   h5[_ngcontent-%COMP%]{margin:0 0 5px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--qi-muted)}.mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word;color:var(--qi-fg);line-height:1.5}.small[_ngcontent-%COMP%]{font-size:12px}.tiny[_ngcontent-%COMP%]{font-size:11px}.pill[_ngcontent-%COMP%]{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--qi-hover);color:var(--qi-muted);margin-left:6px;vertical-align:middle}.guards[_ngcontent-%COMP%]{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}.guard-pill[_ngcontent-%COMP%]{font-size:10px;padding:2px 6px;border-radius:4px;background:#2dd36f1f;color:var(--qi-ok)}.guard-pill.guard-fail[_ngcontent-%COMP%]{background:#eb445a1f;color:var(--qi-danger)}.gemini-raw[_ngcontent-%COMP%]{max-height:400px;overflow-y:auto;background:var(--qi-hover);padding:10px;border-radius:8px}.frames-gallery[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.gallery-item[_ngcontent-%COMP%]{text-align:center}.gallery-item[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;border-radius:6px;background:#000;aspect-ratio:9/16;object-fit:cover;cursor:pointer}
1@media (max-width: 900px){.scene-grid[_ngcontent-%COMP%], .cols[_ngcontent-%COMP%]{grid-template-columns:1fr}.frame[_ngcontent-%COMP%]   img[_ngcontent-%COMP%], .frame[_ngcontent-%COMP%]   .ph[_ngcontent-%COMP%]{max-width:180px}}"]});let t=o;return t})();export{Ge as AdInspectorPage};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.