.layer { position: absolute; inset: 0; z-index: 40; pointer-events: none; opacity: 0; transition: opacity 160ms ease; } .layer[data-active='1'] { opacity: 1; pointer-events: auto; } .backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); } .tray { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(920px, 92%); height: min(520px, 78%); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.12); overflow: hidden; background: rgba(10, 14, 20, 0.55); box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45); } .host { position: absolute; inset: 0; width: 100%; height: 100%; } .host :global(canvas) { width: 100% !important; height: 100% !important; display: block; } .result { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; align-items: baseline; gap: 10px; padding: 8px 14px; border-radius: 999px; background: rgba(9, 9, 11, 0.82); border: 1px solid rgba(255, 255, 255, 0.14); color: #f8fafc; font-weight: 700; pointer-events: none; white-space: nowrap; } .resultNotation { color: #93c5fd; font-size: 13px; } .resultValues { font-size: 14px; font-variant-numeric: tabular-nums; } .resultTotal { font-size: 18px; font-variant-numeric: tabular-nums; } .error { position: absolute; inset: 12px; display: flex; align-items: center; justify-content: center; color: #fecaca; font-size: 13px; text-align: center; pointer-events: none; }