:root{--navy:#001450;--navy-2:#0b1f63;--blue:#0a47a8;--blue-light:#8fb0e3;--red:#fe000c;--red-dark:#d1000a;--text:#0b1b4d;--muted:#5b6480;--gray-50:#f6f6f6;--gray-100:#ededed;--white:#fff;--radius:14px;--radius-sm:8px;--shadow:0 10px 28px #00000029;--shadow-sm:0 4px 12px #0000001a;--header-h:72px;--font-sans:"EMprint", "Segoe UI", "Helvetica Neue", Arial, system-ui, sans-serif;color:var(--text);font-family:var(--font-sans);background:var(--gray-50)}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer}.btn{white-space:nowrap;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 22px;font-weight:700;line-height:1.1;transition:background-color .15s,transform .15s;display:inline-flex}.btn svg{fill:currentColor;width:18px;height:18px}.btn--red{background:var(--red);color:var(--white)}.btn--red:hover{background:var(--red-dark)}.btn--primary{background:var(--blue);color:var(--white)}.btn--primary:hover{background:var(--navy)}.btn--link{color:var(--blue);background:0 0;padding-inline:4px;text-decoration:underline}.btn--sm{padding:8px 14px;font-size:.875rem}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}.header{z-index:10;height:var(--header-h);background:var(--navy);color:var(--white);justify-content:space-between;align-items:center;padding:0 clamp(16px,3vw,32px);display:flex;position:fixed;inset:0 0 auto}.header__brand{align-items:center;gap:14px;display:flex}.header__logo{color:var(--white);letter-spacing:-.02em;font-size:1.6rem;font-weight:800}.header__logo:first-letter{color:var(--red)}.header__divider{background:#fff5;width:1px;height:26px}.header__title{font-size:1rem;font-weight:600}.viewer{inset:var(--header-h) 0 0;background:radial-gradient(circle at 55% 40%, var(--white), #dfe4ec);position:fixed}#scene{touch-action:none;outline:none;width:100%;height:100%;display:block}.loader{color:var(--muted);pointer-events:none;place-content:center;justify-items:center;gap:12px;font-size:.9rem;display:grid;position:absolute;inset:0}.loader__bar{background:var(--gray-100);border-radius:999px;width:220px;height:6px;overflow:hidden}.loader__bar span{background:var(--blue);width:0;height:100%;transition:width .2s;display:block}.loader p{margin:0}.legend{width:280px;padding:20px;position:absolute;top:20px;left:20px}.legend h2{color:var(--navy);margin:0 0 12px;font-size:1.05rem}.legend__list{margin:0;padding:0;list-style:none}.legend__list button{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;white-space:nowrap;background:0 0;border:0;outline:none;align-items:center;gap:10px;padding:7px 8px;font-size:.9rem;display:flex}.legend__list button:focus-visible{outline:2px solid var(--blue)}.legend__list button:hover,.legend__list button.active{background:#f0f4ff}.legend__list button.active{color:var(--blue);font-weight:700}.pin{background:var(--blue);width:26px;height:26px;color:var(--white);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:grid}.active .pin{background:var(--red)}.legend__actions{border-top:1px solid var(--gray-100);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.legend__model{width:100%}.btn:disabled{opacity:.6;cursor:progress}.legend__note{color:var(--muted);margin:10px 0 0;font-size:.75rem;line-height:1.4}.legend__note:empty{display:none}.info{border-top:4px solid var(--red);width:340px;padding:20px;position:absolute;bottom:20px;right:20px}.info[hidden]{display:none}.info__close{color:var(--muted);background:0 0;border:0;font-size:1.5rem;line-height:1;position:absolute;top:8px;right:12px}.info__head{align-items:center;gap:12px;padding-right:20px;display:flex}.info__head .pin{background:var(--red);width:34px;height:34px;font-size:1rem}.info__system{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.info h3{color:var(--navy);margin:2px 0 0;font-size:1.1rem}.info p{color:var(--muted);margin:14px 0;font-size:.88rem;line-height:1.5}.info dl{gap:8px;margin:0;display:grid}.info dl div{border-radius:var(--radius-sm);background:var(--gray-50);padding:10px 12px}.info dt{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:700}.info dd{color:var(--text);margin:3px 0 0;font-size:.88rem;font-weight:600}.ar-overlay{z-index:20;pointer-events:none;position:fixed;inset:0}.ar-overlay[hidden]{display:none}.ar-hint{top:max(20px, env(safe-area-inset-top));border-radius:var(--radius-sm);color:var(--white);text-align:center;background:#001450e0;margin:0;padding:10px 16px;font-size:.85rem;position:absolute;left:50%;transform:translate(-50%)}.ar-controls{bottom:calc(max(20px, env(safe-area-inset-bottom)) + 56px);border-radius:var(--radius);box-shadow:var(--shadow-sm);pointer-events:auto;background:#fffe;gap:12px;margin:0;padding:14px 16px;display:grid;position:absolute;left:12px;right:12px}.ar-controls[hidden]{display:none}.ar-slider{color:var(--text);grid-template-columns:72px 1fr 44px;align-items:center;gap:10px;font-size:.82rem;display:grid}.ar-slider__label{color:var(--navy);font-weight:700}.ar-slider__value{color:var(--blue);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.ar-slider input[type=range]{width:100%;height:6px;accent-color:var(--blue);cursor:pointer;margin:0}.ar-slider input[type=range]:disabled{opacity:.45;cursor:not-allowed}.ar-actions{bottom:max(20px, env(safe-area-inset-bottom));pointer-events:auto;gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}body.xr-active .header,body.xr-active .legend,body.xr-active .loader{display:none}body.xr-active .viewer{background:0 0}body.xr-active .info{z-index:30;width:auto;inset:auto 12px 200px}@media (width<=760px){:root{--header-h:60px}.header__logo{font-size:1.3rem}.header__title{font-size:.85rem}.header .btn{padding:9px 14px;font-size:.85rem}.legend__list button{flex:none}.legend{width:auto;padding:12px;inset:auto 12px 12px}.legend h2,.legend__note{display:none}.legend__list{gap:6px;display:flex;overflow-x:auto}.legend__list button{text-align:center;white-space:normal;flex-direction:column;gap:4px;width:76px;font-size:.68rem}.legend__actions{margin-top:8px;padding-top:8px}.info{width:auto;inset:12px 12px auto}}
