:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;color:#1d1d1f;font-size:15px;font-synthesis:none;background:#eef0f3}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input{font:inherit;color:inherit}button{height:36px;border:0;border-radius:10px;padding:0 14px;background:transparent;cursor:pointer;transition:background .18s ease-out,opacity .18s ease-out}button:hover{background:#0000000d}button:active{background:#0000001a}button:disabled{opacity:.35;cursor:default}button:disabled:hover{background:transparent}button:focus-visible,input:focus-visible{outline:3px solid rgba(0,122,255,.45);outline-offset:2px}input{border:1px solid rgba(0,0,0,.12);border-radius:10px;background:#fff9;padding:0 12px;height:36px;min-width:0}input::placeholder{color:#6e6e73}svg{width:18px;height:18px;stroke-width:1.75;flex-shrink:0}h1{font-size:22px;font-weight:600;margin:0}p{font-size:13px;color:#6e6e73}.glass{background:#ffffffb8;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.6);box-shadow:0 0 0 .5px #00000014,0 8px 24px #0000001f}@supports not ((backdrop-filter:blur(24px)) or (-webkit-backdrop-filter:blur(24px))){.glass{background:#fffffff0}}#login,#projects{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(at 25% 20%,#DCE6F2,transparent 60%),radial-gradient(at 80% 85%,#EFE6DA,transparent 60%),#f2f2f7}.login-card{width:360px;padding:32px;border-radius:20px}.login-card form{display:flex;flex-direction:column;gap:12px;margin-top:24px}.login-card input,.login-card .primary{height:44px;width:100%}.primary{background:#007aff;color:#fff;font-size:15px;font-weight:600}.primary:hover{background:#0062cc}.login-card .primary{margin-top:8px}.auth-link,.text-link{font-size:13px;color:#007aff;height:auto;padding:0}.auth-link{display:block;margin:16px auto 0}.error{color:#ff3b30;margin:0;font-size:13px}.projects-card{width:420px;min-width:420px;max-width:420px;padding:24px;border-radius:20px}#project-list{margin-top:16px}.project-row{display:flex;align-items:center;width:100%;height:64px;padding:6px 12px;gap:12px;text-align:left}.project-thumbnail{width:80px;height:52px;border-radius:8px;background:#e5e5ea;object-fit:cover;flex-shrink:0}.project-name{font-size:17px;font-weight:600;flex:1}.project-row svg{color:#aeaeb2}.project-footer{margin-top:16px;text-align:right}.project-footer button{color:#6e6e73}#viewport{position:fixed;inset:0;background:#eef0f3}canvas{display:block;width:100%;height:100%;touch-action:none}.project-pill{position:fixed;left:16px;top:16px;z-index:2;display:flex;align-items:center;gap:8px;font-weight:600;border-radius:14px}.segmented{position:fixed;left:50%;top:16px;transform:translate(-50%);display:flex;padding:2px;border-radius:9px;z-index:2}.segmented button{width:72px;height:32px;border-radius:7px;padding:0}.segmented [aria-pressed=true]{background:#fff;box-shadow:0 1px 3px #0000001f}.toolbar{position:fixed;right:16px;top:16px;display:flex;align-items:center;padding:4px;border-radius:14px;z-index:3;gap:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;flex-shrink:0}.divider{width:1px;height:20px;background:#0000001f}#status{font-size:13px;color:#6e6e73;padding:0 8px;transition:opacity .18s ease-out}#status:empty{display:none}#status.offline{color:#ff3b30}#status.faded{opacity:0}#more-menu{position:fixed;right:16px;top:68px;width:220px;padding:6px;border-radius:14px;z-index:5}#more-menu button{display:block;width:100%;text-align:left;height:32px;padding:0 8px;font-size:15px}.menu-divider{height:1px;margin:6px 0;background:#0000001f}#furniture-panel{position:fixed;left:16px;top:68px;width:232px;min-width:232px;max-width:232px;max-height:calc(100dvh - 84px);overflow:auto;border-radius:20px;z-index:2;padding:0 11px 12px}#furniture-panel h2{font-size:13px;font-weight:600;color:#6e6e73;padding:12px 0;margin:0}#library{display:grid;grid-template-columns:100px 100px;gap:8px}.asset{width:100px;min-width:100px;max-width:100px;height:100px;min-height:100px;flex-shrink:0;border-radius:12px;background:#fff9;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px;font-size:12px;gap:4px}.asset:hover{background:#ffffffe6}.thumbnail{width:64px;height:64px;flex:0 0 64px;display:grid;place-items:center;position:relative}.thumbnail img{width:64px;height:64px;object-fit:contain}.asset>span:last-child{max-width:88px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#empty-state{margin:12px 0 0;line-height:1.4}#selection-tools{position:fixed;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;padding:6px;align-items:center;border-radius:14px;z-index:4}#item-name{font-weight:600;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 8px}.danger{color:#ff3b30}#size-popover{position:absolute;bottom:calc(100% + 8px);right:0;border-radius:14px;padding:12px}#resize-fields{display:flex;gap:8px}#resize-fields label{width:64px;font-size:13px;color:#6e6e73}#resize-fields label>span{display:block;position:relative;margin-top:4px}#resize-fields input{width:64px;padding:0 20px 0 6px;font-size:13px;appearance:textfield}#resize-fields input::-webkit-inner-spin-button{appearance:none}#resize-fields em{font-style:normal;position:absolute;right:6px;top:10px;font-size:13px;pointer-events:none}#reset-size{margin-top:12px}#zoom-tools{position:fixed;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;z-index:2}#zoom-control{display:flex;padding:4px;border-radius:14px;gap:8px}#reset-view{border-radius:50%}#walk-help{position:fixed;left:50%;bottom:16px;transform:translate(-50%);padding:10px 14px;border-radius:20px;font-size:13px;pointer-events:none;z-index:2;white-space:nowrap}body.walk #furniture-panel,body.walk #selection-tools,body.walk #zoom-tools,body.walk #rotate-handle{display:none}#drop-overlay{position:fixed;inset:12px;background:#007aff14;border:2px dashed #007AFF;border-radius:20px;display:grid;place-items:center;color:#007aff;font-size:17px;font-weight:600;pointer-events:none;z-index:10}#toast{position:fixed;top:60px;left:50%;transform:translate(-50%);width:max-content;max-width:min(480px,calc(100vw - 24px));padding:8px 12px;display:flex;align-items:center;gap:8px;border-radius:20px;z-index:6;font-size:15px}#rotate-handle{position:fixed;width:20px;height:20px;border-radius:50%;background:#fff;box-sizing:border-box;border:2px solid #007AFF;color:#007aff;padding:0;display:grid;place-items:center;transform:translate(-50%,-50%);z-index:1}#rotate-handle svg{width:12px;height:12px}.spinner{width:18px;height:18px;border:2px solid rgba(0,122,255,.2);border-top-color:#007aff;border-radius:50%;animation:spin 1s linear infinite}.thumbnail .spinner{position:absolute}@keyframes spin{to{transform:rotate(360deg)}}#tooltip{position:fixed;background:#1d1d1fe6;color:#fff;font-size:12px;border-radius:6px;padding:6px 8px;pointer-events:none;z-index:20;white-space:nowrap}#tooltip span{color:#aeaeb2;margin-left:8px}#selection-outline{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}#selection-outline svg{width:100%;height:100%}#selection-polygon{fill:none;stroke:#007aff;stroke-width:2;vector-effect:non-scaling-stroke}
