@import "https://fonts.googleapis.com/css2?family=Syne+Mono&display=swap";*{box-sizing:border-box}:root{color:#f9fafb;--media-height:clamp(240px, calc(100dvh - 150px), 560px);--cta-font-size:clamp(1rem, 4.5vw, 1.45rem);background:#05070a;font-family:Syne Mono,SFMono-Regular,Consolas,Liberation Mono,Courier New,monospace}body{background:#05070a;min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{flex-direction:column;width:100%;min-height:100vh;margin:0;padding:28px 0 14px;display:flex}.app-header{text-align:center;flex:none;margin-bottom:28px;padding:0 14px}h1,h2,h3,p{margin-top:0}h1{color:#f9fafb;margin-bottom:0;font-size:clamp(1.7rem,10vw,2.35rem);font-weight:800;line-height:1.12}h2{margin-bottom:14px;font-size:1.05rem}h3{margin:18px 0 8px;font-size:.95rem}.welcome-screen{flex:1;min-height:0;padding:0 14px 36px;display:grid}.welcome-content{text-align:center;grid-template-rows:1fr auto;place-items:center;gap:24px;width:min(960px,100%);min-height:100%;margin:0 auto;display:grid}.cta-icon{width:clamp(86px,26vw,132px);height:auto;display:block}.welcome-actions{justify-items:center;gap:14px;width:min(560px,100%);display:grid}.welcome-callout{color:#f9fafb;font-size:var(--cta-font-size);margin:0;font-weight:750;line-height:1.28}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:999px;margin-top:16px;padding:12px 20px;font-weight:800}.primary-button{color:#f9fafb;background:#111827;border:1px solid #f9fafb}.primary-button:hover{background:#1f2937}.primary-button:disabled{opacity:.5;cursor:not-allowed}.start-button{min-width:132px;margin-top:0}.secondary-button{color:#f9fafb;background:#111827;border:1px solid #374151;margin-top:0}.workspace{flex-direction:column;flex:1;align-items:stretch;gap:24px;display:flex}.image-column,.risk-sidebar{min-width:0}.image-column{align-items:start;gap:8px;display:grid}.risk-sidebar{background:#0f141d;border:1px solid #283241;border-radius:12px;grid-template-columns:1fr;align-items:start;gap:clamp(24px,3vw,34px);min-height:0;margin:0 14px;padding:clamp(14px,2vw,20px);display:grid;box-shadow:0 20px 50px #00000047}.risk-sidebar--accordion{padding:0;overflow:hidden}.object-accordion{min-width:0}.object-accordion summary{cursor:pointer;color:#f9fafb;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:14px 16px;font-weight:900;list-style:none;display:flex}.object-accordion summary::-webkit-details-marker{display:none}.object-accordion summary:before{content:">";color:#cbd5e1;transition:transform .14s;transform:rotate(0)}.object-accordion[open] summary:before{transform:rotate(90deg)}.object-accordion summary span{flex:1}.object-accordion summary small{color:#cbd5e1}.object-accordion .object-tags-section{padding:0 16px 16px}.camera-card{width:100%;box-shadow:none;background:0 0;border:0;padding:0}.camera-frame{width:min(100%, calc(var(--media-height) * var(--camera-ratio-number,1.7778)));max-width:100%;aspect-ratio:var(--camera-aspect-ratio,16 / 9);background:#020617;border-radius:0;place-items:center;margin:0 auto;transition:width .18s,aspect-ratio .18s;display:grid;position:relative;overflow:hidden}.camera-frame--inactive{background:#05070a}.camera-video{object-fit:contain;width:100%;height:100%;display:block}.camera-detection-overlay{z-index:1;object-fit:contain;cursor:pointer;width:100%;height:100%;display:block;position:absolute;inset:0}.camera-placeholder{z-index:2;color:#f9fafb;text-align:center;font-weight:750;font-size:var(--cta-font-size);background:#05070a;grid-template-rows:1fr auto;place-items:center;gap:24px;padding:24px 24px 30px;line-height:1.28;display:grid;position:absolute;inset:0}.camera-placeholder-actions{justify-items:center;width:min(560px,100%);display:grid}.camera-placeholder .cta-copy{max-width:min(760px,100%);margin:0}.capture-overlay-button{z-index:3;color:#fff;-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#ffffff2e;border:1px solid #ffffffb3;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:14px 26px;font-weight:900;display:inline-flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000003d}.capture-overlay-button:hover{background:#ffffff47}.capture-overlay-button:disabled{cursor:wait;opacity:.72}.capture-button-icon{flex:none;width:24px;height:24px}.camera-processing-overlay{z-index:3;pointer-events:none;background:#05070a47;place-items:center;display:grid;position:absolute;inset:0}.camera-processing-icon{filter:drop-shadow(0 18px 30px #0000006b);width:clamp(82px,18vw,132px);height:auto;animation:1.2s ease-in-out infinite cameraProcessingPulse}@keyframes cameraProcessingPulse{0%,to{opacity:.62;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.risk-tooltip{z-index:2;color:#f9fafb;pointer-events:auto;background:#182131f0;border:1px solid #475569;border-radius:8px;width:min(320px,100% - 28px);max-width:320px;max-height:calc(100% - 28px);padding:12px 14px;position:absolute;overflow-y:auto;box-shadow:0 16px 36px #00000057}.risk-tooltip--above,.risk-tooltip--below{transform:translate(-50%)}.risk-tooltip:after{content:"";left:var(--tooltip-arrow-left,50%);background:#182131f0;width:12px;height:12px;position:absolute;transform:translate(-50%)rotate(45deg)}.risk-tooltip--above:after{border-bottom:1px solid #475569;border-right:1px solid #475569;bottom:-7px}.risk-tooltip--below:after{border-top:1px solid #475569;border-left:1px solid #475569;top:-7px}.risk-tooltip__object-name{color:#f9fafb;overflow-wrap:anywhere;text-transform:capitalize;margin-bottom:8px;font-size:.95rem;font-weight:900;line-height:1.2}.risk-tooltip__metrics{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-weight:900;display:flex}.risk-tooltip__metrics strong{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;font-size:1.15rem;display:inline-flex}.risk-tooltip__metrics strong span,.risk-tooltip__metrics>span{color:#cbd5e1;font-size:.85rem}.risk-tooltip__metrics>span{white-space:nowrap;flex:none}.risk-tooltip p{color:#e5e7eb;margin:0;font-size:.86rem;line-height:1.42}.typing-caret{border-right:2px solid #f9fafb;width:.58em;height:1em;margin-left:2px;animation:.72s steps(2,start) infinite caretBlink;display:inline-block;transform:translateY(2px)}@keyframes caretBlink{0%,45%{opacity:1}46%,to{opacity:0}}.camera-toggle-button{justify-content:center;align-items:center;width:fit-content;margin-left:auto;margin-right:auto;display:flex}.captured-photo-module{gap:10px;width:100%;display:grid;position:relative}.captured-photo-module .canvas-wrapper{height:auto}.captured-photo-module .detection-canvas{height:auto;max-height:var(--media-height)}.retake-overlay-button{z-index:2;justify-self:center;margin-top:0;position:static;bottom:auto;left:auto;transform:none}.status-bar{gap:8px;margin:0 14px 6px;display:grid}.status-text{text-align:left;color:#f9fafb;background:0 0;margin:0;font-size:.95rem;font-weight:700}.status-progress{background:#f9fafb38;width:min(360px,100%);height:3px;position:relative;overflow:hidden}.status-progress span{background:#f9fafb;width:0;position:absolute;inset:0 auto 0 0}.status-bar.loading .status-progress span{width:42%;animation:1.15s ease-in-out infinite statusLoading}.status-bar.complete .status-progress span{width:100%}@keyframes statusLoading{0%{transform:translate(-110%)}to{transform:translate(250%)}}.canvas-wrapper{width:100%;height:var(--media-height);box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;transition:height .18s;overflow:hidden}.detection-canvas{object-fit:contain;cursor:pointer;border-radius:0;width:100%;height:100%;max-height:none;display:block}.object-tags-section{min-width:0}.object-tags{flex-wrap:wrap;gap:10px;display:flex}.object-tag{cursor:pointer;color:#f9fafb;background:#182131;border:1px solid #475569;border-radius:999px;justify-content:space-between;align-items:center;gap:8px;width:100%;max-width:100%;padding:9px 12px;font-weight:800;display:inline-flex}.object-tag small{color:#cbd5e1;white-space:nowrap;font-weight:750}.object-tag.selected{background:#263247;border-color:#f9fafb}.object-meta,.muted{color:#cbd5e1;font-size:.95rem}.detail-panel{min-width:0}.detail-panel p{color:#e5e7eb;line-height:1.55}.detail-grid{background:#182131;border-radius:8px;grid-template-columns:auto 1fr;gap:10px;margin-bottom:12px;padding:14px;display:grid}.detail-grid span{color:#cbd5e1;text-align:right}.error-box,.error-banner{color:#fee2e2;background:#7f1d1d;border-radius:8px;padding:16px;font-weight:700}.error-banner{margin-bottom:16px}.empty-state{color:#cbd5e1;background:#182131;border-radius:8px;padding:14px;line-height:1.45}@media (width<=900px){:root{--media-height:clamp(280px, calc(100dvh - 170px), 680px)}.app-shell{padding:30px 0 16px}.app-header{margin-bottom:30px;padding:0 16px}.welcome-screen{padding-bottom:36px}.workspace{grid-template-columns:1fr}.risk-sidebar{grid-template-columns:1fr;min-height:0;margin:0 16px;position:static}.status-bar{margin-left:16px;margin-right:16px}}@media (width<=640px),(height<=620px){.workspace{gap:24px}.captured-photo-module{gap:10px;display:grid}.retake-overlay-button{justify-self:center;margin-top:0;position:static;bottom:auto;left:auto;transform:none}}@media (width<=520px){:root{--media-height:clamp(420px, calc(100dvh - 150px), 760px);--cta-font-size:clamp(1rem, 4.5vw, 1.45rem)}.app-shell{padding:28px 0 14px}.app-header,.welcome-screen{padding-left:14px;padding-right:14px}.risk-sidebar,.status-bar{margin-left:14px;margin-right:14px}h1{white-space:nowrap;font-size:clamp(1.45rem,7vw,1.7rem)}.camera-frame{width:100%}.object-tag{justify-content:space-between;width:100%}}@media (width>=521px){:root{--media-height:clamp(280px, calc(100dvh - 170px), 680px);--cta-font-size:clamp(1.05rem, 2.8vw, 1.45rem)}.app-shell{padding:30px 0 16px}.app-header,.welcome-screen{padding-left:16px;padding-right:16px}.risk-sidebar,.status-bar{margin-left:16px;margin-right:16px}.object-tag{width:auto}}@media (width>=641px) and (height>=621px){.workspace{gap:24px}.captured-photo-module{display:block}.retake-overlay-button{position:absolute;bottom:28px;left:50%;transform:translate(-50%)}}@media (width>=901px){:root{--media-height:clamp(300px, calc(100dvh - 190px), 820px);--cta-font-size:clamp(1.05rem, 1.4vw, 1.35rem)}.app-shell{padding:40px 0 24px}.app-header{margin-bottom:34px;padding:0 24px}h1{font-size:clamp(1.35rem,2.2vw,2.15rem)}.welcome-screen{padding:0 24px 44px}.risk-sidebar,.status-bar{margin-left:24px;margin-right:24px}}
