:root{--primary:#0f766e;--primary-600:#0e6b63;--primary-50:#ecfdf5;--accent:#14b8a6;--bg:#f7f8fa;--bg-soft:#f1f3f6;--panel:#ffffff;--border:#e5e7eb;--border-soft:#f1f2f4;--text:#0f172a;--text-soft:#475569;--text-muted:#64748b;--text-faint:#94a3b8;--success:#16a34a;--success-bg:#dcfce7;--warning:#d97706;--warning-bg:#fef3c7;--danger:#dc2626;--danger-bg:#fee2e2;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--shadow-xs:0 1px 2px rgba(15,23,42,0.04);--shadow-sm:0 1px 3px rgba(15,23,42,0.06),0 1px 2px rgba(15,23,42,0.04);--shadow-md:0 4px 12px rgba(15,23,42,0.06),0 2px 4px rgba(15,23,42,0.04);--shadow-lg:0 12px 32px rgba(15,23,42,0.1);--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body,html{height:100%;margin:0}body{font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:24px}h2{font-size:20px}h3{font-size:15px}.app{display:flex;min-height:100vh}.sidebar{width:260px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.brand{gap:10px;padding:18px 18px 16px;border-bottom:1px solid var(--border-soft)}.brand,.brand .logo-wrap{display:flex;align-items:center}.brand .logo-wrap{width:32px;height:32px;border-radius:8px;background:var(--primary);color:white;justify-content:center;font-weight:700}.brand img{height:28px;max-width:100px;object-fit:contain}.brand .name{font-weight:600;font-size:14px}.brand .name small{display:block;font-size:11px;color:var(--text-muted);font-weight:400}.sidebar a{display:flex;align-items:center;gap:10px;padding:9px 14px;margin:1px 8px;border-radius:var(--r-sm);font-size:13.5px;color:var(--text-soft);font-weight:500}.sidebar a:hover{background:var(--bg-soft);color:var(--text)}.sidebar a.active{background:var(--primary-50);color:var(--primary);font-weight:600}.sidebar .group{font-size:11px;font-weight:600;color:var(--text-faint);padding:18px 18px 6px;text-transform:uppercase;letter-spacing:.06em}.controls{padding:0 14px}.controls .input,.controls select{width:100%;padding:7px 10px;background:white;border:1px solid var(--border);border-radius:var(--r-sm);font-size:13px}.controls .help{font-size:11px;color:var(--text-muted);margin-top:6px}.main{flex:1 1;display:flex;flex-direction:column}.topbar{background:linear-gradient(135deg,var(--primary),var(--primary-600));color:white;padding:12px 28px;display:flex;align-items:center;gap:14px;min-height:56px}.topbar .name{font-weight:600;font-size:15px}.topbar .badge{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.2);padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:500}.scroll,.topbar .spacer{flex:1 1}.scroll{overflow-y:auto}.page{padding:32px;max-width:1100px;margin:0 auto}.lead{color:var(--text-muted);margin:6px 0 24px;font-size:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-xs)}.card.flush{padding:0;overflow:hidden}.card-header{padding:14px 18px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;gap:10px}.card-header h3{margin:0}.card-body{padding:18px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px}.stat .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat .value{font-size:24px;font-weight:600;margin-top:4px;color:var(--text)}.stat .delta{font-size:12px;color:var(--success);margin-top:2px}.field{margin-bottom:14px}.field label{display:block;font-weight:500;font-size:13px;margin-bottom:6px}.field .hint{color:var(--text-muted)}.field .err,.field .hint{font-size:12px;margin-top:4px}.field .err{color:var(--danger)}.input,select,textarea{width:100%;padding:9px 12px;background:white;border:1px solid var(--border);border-radius:var(--r-sm);font-size:14px;color:var(--text);font-family:inherit;transition:.12s}.input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;background:white;border:1px solid var(--border);border-radius:var(--r-sm);font-weight:500;font-size:13px;color:var(--text);transition:.12s}.btn:hover{background:var(--bg-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:white}.btn.primary:hover{background:var(--primary-600);border-color:var(--primary-600)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#0f172a;font-weight:600}.btn.lg{padding:12px 20px;font-size:14px}.btn.ghost{background:transparent;border-color:transparent}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:18px;background:var(--bg-soft);color:var(--text-soft)}.pill.paid{background:var(--success-bg);color:var(--success)}.pill.pending{background:var(--warning-bg);color:var(--warning)}.pill.failed{background:var(--danger-bg);color:var(--danger)}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:12px 18px;text-align:left;font-size:13.5px}.table thead th{background:var(--bg-soft);color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.table tbody tr{border-bottom:1px solid var(--border-soft)}.table tbody tr:hover{background:var(--bg-soft)}.muted{color:var(--text-muted);font-size:12.5px}.flex{display:flex;gap:8px;align-items:center}.spacer{flex:1 1}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.stepper{margin-bottom:24px;flex-wrap:wrap}.stepper,.stepper .step{display:flex;align-items:center;gap:8px}.stepper .num{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;background:var(--bg-soft);color:var(--text-muted);border:1px solid var(--border)}.stepper .step.done .num{background:var(--success);color:white;border-color:var(--success)}.stepper .step.current .num{background:var(--primary);color:white;border-color:var(--primary)}.stepper .label{font-size:13px;color:var(--text-muted);text-transform:capitalize}.stepper .step.current .label{color:var(--text);font-weight:600}.stepper .bar{flex:1 1;height:2px;background:var(--border);min-width:20px}.token-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:12px;gap:12px}.token-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-xs)}.token-card .num{font-family:var(--font);font-weight:700;font-size:18px;letter-spacing:.02em}.token-card .price{font-size:22px;font-weight:700;margin-top:8px}.token-card .meta{color:var(--text-muted);font-size:12px;margin-top:4px}.hero{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 15%,white),color-mix(in srgb,var(--accent) 12%,white));padding:28px;border-radius:var(--r-xl);margin-bottom:20px;border:1px solid var(--border)}.hero h2{color:var(--text)}.hero p{color:var(--text-soft);margin-top:6px}@media (max-width:800px){.sidebar{width:100%;height:auto;border-right:0;border-bottom:1px solid var(--border)}.app{flex-direction:column}}.err{color:var(--danger);font-size:12px}.inv-page{position:relative;flex:1 1;overflow:hidden}html:not([data-inv-embed]) .inv-viewport-root,html[data-inv-embed=false] .inv-viewport-root{position:fixed;inset:0;width:100%;height:100%;min-height:100dvh;overflow:hidden}html[data-inv-embed=true],html[data-inv-embed=true] body{height:100%;width:100%;margin:0;padding:0;overflow:hidden}.inv-page-immersive,html[data-inv-embed=true] .inv-viewport-root{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.inv-page-immersive{background:#0f0f10;container-type:size;display:flex;align-items:center;justify-content:center;isolation:isolate}.inv-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.inv-bg-overlay{position:absolute;inset:0;pointer-events:none;z-index:1}.inv-empty{flex:1 1;color:var(--text-muted)}.inv-empty,.inv-loader{display:flex;align-items:center;justify-content:center}.inv-loader{position:fixed;inset:0;z-index:50;overflow:hidden;opacity:1;transition:opacity .42s ease;--inv-loader-blur:0px;--inv-loader-spinner:#ffffff;--inv-loader-text:#ffffff}.inv-loader--out{opacity:0;pointer-events:none}.inv-loader__bg{position:absolute;inset:0;background-position:50%;background-size:cover;filter:blur(var(--inv-loader-blur)) saturate(1.05);transform:scale(1.12)}.inv-loader__scrim{position:absolute;inset:0;background:rgba(20,20,22,.32)}.inv-loader__body{position:relative;display:flex;flex-direction:column;align-items:center;gap:28px}.inv-loader__text{margin:0;color:var(--inv-loader-text);font-family:var(--theme-heading-font,var(--font,"Inter")),sans-serif;font-size:clamp(20px,3.4vw,34px);font-weight:700;letter-spacing:.2px;text-shadow:0 1px 12px rgba(0,0,0,.35)}.inv-loader__spinner{position:relative;width:132px;height:132px;display:grid;place-items:center}.inv-loader__ring{position:absolute;border-radius:50%;box-sizing:border-box}.inv-loader__ring--outer{width:132px;height:132px;border:3px solid var(--inv-loader-spinner);opacity:.26}.inv-loader__ring--spin{width:132px;height:132px;border:3px solid transparent;border-top:3px solid var(--inv-loader-spinner);animation:inv-loader-spin 1.3s linear infinite}.inv-loader__ring--inner{width:52px;height:52px;border:2px solid var(--inv-loader-spinner);opacity:.92}.inv-loader__bounce{width:16px;height:16px;margin:0 7px;border-radius:50%;background:var(--inv-loader-spinner);display:inline-block;animation:inv-loader-bounce 1.2s ease-in-out infinite}.inv-loader__bounce:nth-child(2){animation-delay:.16s}.inv-loader__bounce:nth-child(3){animation-delay:.32s}@keyframes inv-loader-spin{to{transform:rotate(1turn)}}@keyframes inv-loader-bounce{0%,80%,to{transform:scale(.5);opacity:.5}40%{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.inv-loader__bounce,.inv-loader__ring--spin{animation:none}}.inv-stage{position:relative;z-index:2;width:100cqw;height:100cqh;container-type:size;overflow:hidden}.inv-stage-inner{container-type:size;--inv-w-scale:min(100cqw/1920px,100cqh/1080px)}.inv-stage-inner,.inv-widget-layer{position:absolute;inset:0;width:100%;height:100%}.inv-widget-layer{z-index:5;pointer-events:none}.inv-widget-layer>*{pointer-events:auto}html[data-inv-stage-mode=design-frame] .inv-stage{width:min(100cqw,100cqh * 1.7777777778);aspect-ratio:16/9;max-width:100cqw;max-height:100cqh}html[data-inv-stage-mode=design-frame] .inv-stage-inner{position:absolute;inset:auto;left:50%;top:50%;width:1920px;height:1080px;transform-origin:center center;transform:translate(-50%,-50%) scale(min(100cqw/1920px,100cqh/1080px));--inv-w-scale:1}html[data-inv-stage-mode=fill] .inv-stage-inner{position:absolute;left:50%;top:50%;width:1920px;height:1080px;inset:auto;transform-origin:center center;transform:translate(-50%,-50%) scale(max(100cqw/1920px,100cqh/1080px));--inv-w-scale:1}.inv-stage .inv-rotation-side{width:calc(var(--rot-gap, 180) / 1920 * 100cqw / var(--inv-w-scale))}.inv-rotate-prompt{display:none;pointer-events:none}.inv-viewport-root--rotate-blocking .inv-page-immersive{display:none!important}.inv-rotate-prompt.is-visible{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:var(--inv-rotate-bg,#0f0f10);color:var(--inv-rotate-text,#f5f5f5);text-align:center;font-family:var(--font);pointer-events:auto}.inv-rotate-prompt svg{width:var(--inv-rotate-icon-size,96px);height:var(--inv-rotate-icon-size,96px);color:var(--inv-rotate-accent,#c8a16a);animation:invRotateNudge 1.8s ease-in-out infinite}.inv-rotate-prompt--static svg{animation:none}.inv-rotate-prompt h2{margin:0;font-size:var(--inv-rotate-title-size,18px);font-weight:600}.inv-rotate-prompt p{margin:0;font-size:var(--inv-rotate-body-size,13px);color:var(--inv-rotate-text,#f5f5f5);opacity:.72;max-width:280px;line-height:1.5}@keyframes invRotateNudge{0%,to{transform:rotate(-10deg)}50%{transform:rotate(80deg)}}.inv-canvas{width:100%;height:100%;overflow:hidden;touch-action:pan-x pan-y}.inv-canvas,.inv-canvas-skeleton,.inv-canvas>.inv-canvas-img,.inv-canvas>.inv-canvas-svg{position:absolute;inset:0}.inv-canvas-skeleton{z-index:0;display:flex;align-items:center;justify-content:center;background:transparent;pointer-events:none}.inv-canvas-skeleton-icon{color:#8a8f98;opacity:.35}.inv-canvas-skeleton:not(.error) .inv-canvas-skeleton-icon{animation:invCanvasPulse 1.4s ease-in-out infinite}@keyframes invCanvasPulse{0%,to{opacity:.16}50%{opacity:.4}}.inv-canvas[data-pan-zoom=true]{cursor:-webkit-grab;cursor:grab;touch-action:none}.inv-canvas[data-panning=true]{cursor:-webkit-grabbing;cursor:grabbing}.inv-canvas-img,.inv-canvas-svg{width:100%;height:100%;display:block;transform:translate(var(--canvas-pan-x,0),var(--canvas-pan-y,0)) scale(var(--canvas-zoom,1));transform-origin:center center;transform-box:fill-box;transition:transform .18s ease;will-change:transform}.inv-canvas-img{--canvas-img-base-transform:translate(0px) scale(1);transform:translate(var(--canvas-pan-x,0),var(--canvas-pan-y,0)) scale(var(--canvas-zoom,1)) var(--canvas-img-base-transform)}.inv-canvas[data-panning=true] .inv-canvas-img,.inv-canvas[data-panning=true] .inv-canvas-svg{transition:none}.inv-canvas[data-pan-zoom-apply=svg] .inv-canvas-img{transform:var(--canvas-img-base-transform,none)}.inv-canvas[data-image-fit=cover] .inv-unit-plan-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0;pointer-events:none}.inv-canvas[data-image-fit=cover] .inv-unit-plan-wrap .inv-canvas-img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.polygon{fill:var(--polygon-fill,rgba(20,184,166,.5));stroke:var(--polygon-stroke,rgba(0,0,0,.5));stroke-width:var(--polygon-stroke-width,1);vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .15s ease,stroke .15s ease}.polygon:focus,.polygon:focus-visible{outline:none}.inv-canvas[data-polygon-effect-trigger=click] .polygon.tooltip-active,.inv-canvas[data-polygon-effect-trigger=hover-click] .polygon.tooltip-active,.inv-canvas[data-polygon-effect-trigger=hover-click] .polygon:hover,.inv-canvas[data-polygon-effect-trigger=hover] .polygon:hover{fill:var(--polygon-hover-fill,rgba(20,184,166,0));stroke:var(--polygon-hover-stroke,rgba(0,0,0,.57))}.polygon.inactive{pointer-events:none;opacity:.5}.inv-aerial-canvas .polygon.inactive{fill:transparent;stroke:transparent;opacity:0}.inv-polygon-label{position:absolute;transform:translate(-50%,-50%);pointer-events:none;font-size:12px;font-weight:600;color:white;text-shadow:0 1px 2px rgba(0,0,0,.5);white-space:nowrap}.inv-aerial-marker-label{filter:drop-shadow(0 8px 14px rgba(0,0,0,.34))}.inv-aerial-marker-label--disabled{opacity:.64}.inv-aerial-marker-pulse{fill:rgba(133,142,151,.3);stroke:rgba(255,255,255,.18);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:invAerialPinPulse 2.45s ease-out infinite}.inv-aerial-marker-halo{fill:rgba(58,65,72,.44);stroke:rgba(255,255,255,.16);stroke-width:1}.inv-aerial-marker-ring{fill:#ffffff;stroke:#f05a18;transform-box:fill-box;transform-origin:center;animation:invAerialPinPop 2.45s ease-in-out infinite}.inv-aerial-marker-dot{fill:#f05a18;stroke:#ffffff}.inv-aerial-marker-label-bg{fill:rgba(3,5,8,.88);stroke:rgba(255,255,255,.12);stroke-width:1}.inv-aerial-marker-label-text{letter-spacing:0;paint-order:stroke;stroke:rgba(0,0,0,.28);stroke-width:1.2;stroke-linejoin:round}@keyframes invAerialPinPulse{0%{opacity:.52;transform:scale(.82)}72%{opacity:0;transform:scale(1.26)}to{opacity:0;transform:scale(1.26)}}@keyframes invAerialPinPop{0%,to{transform:scale(1)}48%{transform:scale(1.05)}}.inv-fixed-tooltip{position:absolute;z-index:45;pointer-events:none;max-width:min(520px,88%)}.inv-fixed-tooltip--center{left:50%;top:50%;transform:translate(-50%,-50%)}.inv-fixed-tooltip--top{left:50%;top:8%;transform:translateX(-50%)}.inv-fixed-tooltip--right{right:5%;top:50%;transform:translateY(-50%)}.inv-fixed-tooltip--bottom{left:50%;bottom:8%;transform:translateX(-50%)}.inv-fixed-tooltip--left{left:5%;top:50%;transform:translateY(-50%)}@keyframes spin{to{transform:rotate(1turn)}}